Jak resit bufferovani UARTU v MCU

RV vicek.radek@cpost.cz
Čtvrtek Březen 23 09:42:45 CET 2006


Zdravim,

vcera jsem dopsal prvni pouzitelnou verzi serioveho RS232->LCD s tim, ze 
jsou implementovany zatim tri prikazy:

1C;  = vykonej prikaz urceny parametrem C seznam zde:
          '1':Lcd_Cmd(LCD_FIRST_ROW);
          '2':Lcd_Cmd(LCD_SECOND_ROW);
          '3':Lcd_Cmd(LCD_THIRD_ROW);
          '4':Lcd_Cmd(LCD_FOURTH_ROW);
          '5':Lcd_Cmd(LCD_CLEAR);
          '6':Lcd_Cmd(LCD_RETURN_HOME);
          '7':Lcd_Cmd(LCD_CURSOR_OFF);
          '8':Lcd_Cmd(LCD_UNDERLINE_ON);
          '9':Lcd_Cmd(LCD_BLINK_CURSOR_ON);
         '10':Lcd_Cmd(LCD_MOVE_CURSOR_LEFT);
         '11':Lcd_Cmd(LCD_MOVE_CURSOR_RIGHT);
         '12':Lcd_Cmd(LCD_TURN_ON);
         '13':Lcd_Cmd(LCD_TURN_OFF);
         '14':Lcd_Cmd(LCD_SHIFT_LEFT);
         '15':Lcd_Cmd(LCD_SHIFT_RIGHT);

2RSxx....x;  = vypis znaky x na radek R a od sloupce S
3xx....x;  = vypis znaky x od aktualni pozice kurzoru

chci jeste implementovat prikaz pro ovladani pipaku a zhasinani 
podsvetleni displeje a hlavne jako prvni ridici znak adresu displeje aby 
slo vice displeju ovladat po jednom dratu.
**************************************
Kazdy prikaz je ukoncen znakem ; a zpracovan okamzite po prenosu tohoto 
znaku.

S tim souvisi jedna nepekna vec, na kterou jsem prisel az kdyz jsem psal 
obsluhu displeje do programu k meteostanici. Kdyz poslu totiz prikazy do 
displeje hned po sobe tak o ten druhej prikaz prijdu, protoze v tu 
chvili zpracovavam 24 bajtovy buffer (4 parametry a 20znaku) a nemuzu 
cist UART.

Premyslim jak to lze vyresit - zatim me napadla jen jedina vec - 
rozsirit buffer na celej zbytek RAM (asi jeste 150B) s tim, ze tohle 
proste nesmi pretect a implementovat jeste prikaz pro zpracovani 
bufferu. Nechci totiz pouzit zadnou zpetnou linku z displeje. Je jeste 
nejake jine reseni? At dumam jak dumam nic me nenapadlo.

RadekCX







Další informace o konferenci Hw-list