Vous êtes sur la page 1sur 2

#include "includes.

h"
/*-------------------------------*/
#pragma config OSC = HS
#pragma config WDT = OFF
#pragma config LVP = OFF
#pragma config STVR = ON
/*-------------------------------*/
OS_STK pile_tache1[128]; // pile
OS_STK pile_tache2[128]; // pile

void tache1 (void *pdata); //prototype1


void tache2 (void *pdata);
OS_EVENT *LCD;
OS_EVENT *MBox;

/*-------------------------------*/
void main (void){
BSP_Init ();
OSInit();
OSTaskCreate(tache1, (void *)0, &pile_tache1[0], 1);
OSTaskCreate(tache2, (void *)0, &pile_tache2[0], 3);
LCD=OSSemCreate(1);
MBox = OSMboxCreate((void*)0)
OSStart();
}
void tache1(void *pdata){
unsigned char compteur=0;
INT8U erreur;
char buf [50];
while(1){
compteur++;
if(compteur==100)
{compteur=0;}
sprintf(buf,"compteur =%2d",compteur);
OSSemPend(LCD,0,&erreur);
WriteCmdXLCD(0x00);
SetDDRamAddr(0x00);
putsXLCD(buf);
OSSemPost(LCD);
OSTimeDlyHMSM(0,0,1,0);

}
}
void tache2(void *pdata){
unsigned char compteur2=101;
INT8U erreur;
void*msg;
char buf2 [50];
while(1){
if(erreur== OS_NO_ERR)
{
compteur2++;
if(compteur2==129)
{compteur2=101;}
sprintf(buf2,"compteur2 =%2d",compteur2);
msg = OSMboxPend(Mbox,10,&erreur);
}
else
{
}
OSSemPend(LCD,0,&erreur);
WriteCmdXLCD(0x40);
SetDDRamAddr(0x40);
putsXLCD(buf2);
OSSemPost(LCD);
OSTimeDlyHMSM(0,0,1,0);

}
}

Vous aimerez peut-être aussi