Alterei pra rodar em uma placa com 9S08AC128, ficou bem legal. O footprint dele é de 2k7 para código e 2k5 para ram. Eu estou vendo o que dá pra tirar fora pra baixar pra uns 2k de ram.
Estou testando na placa DEMOAC com 4 threads, cada uma piscando um led com tempos diferentes. Agora vou colocar as interrupções das serias, i2c e capturas pra ver como fica.
- Código: Selecionar todos
//Código da thread de teste
void ThreadA(int data){
unsigned char toggle=0xFF;
unsigned char led;
LED_1_DIR = 1;
LED_2_DIR = 1;
LED_3_DIR = 1;
LED_4_DIR = 1;
led = (unsigned char)(data>>12);
data &= 0xfFF;
for(;;){
toggle = ~toggle;
switch(led){
case 0: LED_1_PIN = toggle;
break;
case 1: LED_2_PIN = toggle;
break;
case 2: LED_3_PIN = toggle;
break;
case 3: LED_4_PIN = toggle;
break;
}
sleep(data);
}
}
- Código: Selecionar todos
//criação das threads
(void)ThreadCreate(5, ThreadA, ThreadAStack,64,(void*) 100);
(void)ThreadCreate(5, ThreadA, ThreadBStack,64,(void*) (0x1000 |200));
(void)ThreadCreate(5, ThreadA, ThreadCStack,64,(void*) (0x2000 |400));
(void)ThreadCreate(5, ThreadA, ThreadDStack,64,(void*) (0x3000 |800));
Acho que uma pequena melhoria que vou realizar é criar a stack de cada thread dentro dessa função ThreadCreate.
[/url][/code]