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