ISIX-RTOS – przykład 4 – wątkowa obsługa portu szeregowego RS232
Podobnie jak poprzednio klasa przechowuje referencje do obiektu portu szeregowego, a realizacja wątku dokonywana jest przez metodę wirtualną main() – list. 13.
List. 13. Implementacja metody main klasy key_transmitter
//Main task - read joy key and sent it to RS232
void key_transmitter::main()
{
//Previous key variable
static short p_key = -1;
serial.puts("Key A - enable LED1\r\n");
serial.puts("Key B - disable LED1\r\n");
serial.puts("Key C - enable LED2\r\n");
serial.puts("Key D - disable LED2\r\n");
serial.puts("Press joy on the stm32 butterfly\r\n");
for(;;)
{
//Get key
short key = get_key();
//Check if any key is pressed
if(key!=0 && p_key==0)
{
switch(key)
{
case KEY_OK:
serial.puts("Key OK pressed\r\n");
break;
case KEY_LEFT:
serial.puts("Key LEFT pressed\r\n");
break;
case KEY_RIGHT:
serial.puts("Key RIGHT pressed\r\n");
break;
case KEY_UP:
serial.puts("Key UP pressed\r\n");
break;
case KEY_DOWN:
serial.puts("Key DOWN pressed\r\n");
break;
}
}
//Previous key assignement
p_key = key;
//Wait short time
isix::isix_wait( isix::isix_ms2tick(DELAY_TIME) );
}
}
Na początku za pomocą metody puts() sterownika portu szeregowego są wysyłane teksty powitalne do portu szeregowego, a następnie program wchodzi do pętli głównej. Pętla główna wykonywana jest cyklicznie z czasem DELAY_TIME (25 ms), co umożliwia sprawdzenie stany joysticka eliminując drgania zestyków. W przypadku wykrycia zmiany stanu portów sprawdzany jest numer klawisza, a następnie za pomocą metody puts sterownika portu szeregowego, wypisywane są komunikaty, informujące o pozycji joysticka.

Technologie End of Life i bezpieczeństwo sieci – wyzwania Europy związane z tzw. długiem technologicznym
Najczęstsze błędy firm przy wyborze dostawcy energii i jak ich uniknąć
Fotorezystor, czyli czujnik światła dwojakiego działania. Przykład innowacji w automatyce i elektronice możliwej dzięki technologii fotooporników 



