podivne chovani PIC18F452+LCD+Klavesnice3x4
soteza@soteza.cz
soteza@soteza.cz
Pátek Únor 9 22:26:09 CET 2007
Zdravim.
potrebuji pomoct s nestabilitou programu nebo prostredi. Mam otevreny
vzorovy projekt z MicroPascalu. Display je 4bitove pripojeny na PortB,
klavesnice je na PortC. Krystal je externi 8MHz. Krom kodanu u krystalu
neni v zapojeni zadna jina soucastka. Potiz je v tom ze nevim jak spravne
nastavit pojistky. Program se chova tak ze hned po zapnuti nekdy naskoci
pozadovany text a jakoby funguje ale po par vterinach se na LCD zacne
vypisovat nesmysly a potom se zaplni jen obdelnicky pres cele znaky. Po
dalsim zapnuti uz naskoci jen ty obdelnicky. Mam nastaveno jen HS_OSC a
WDT_OFF. popradi mi prosim nekdo jak to spravne nastavit nebo kde je
chyba? Zatim se snazim ucit tak o tom moc nevim. V datasheetu sice nejake
popisy pojistek jsou ale moc tomu nerozumim. Ze by komparatory? Jak je
vypnu?
program keypad_test;
var
kp, cnt : byte;
txt : string[5];
begin
cnt := 0;
Keypad_Init(PORTC);
Lcd_Init(PORTB); // Initialize LCD on PORTC
Lcd_Cmd(LCD_CLEAR); // Clear display
Lcd_Cmd(LCD_CURSOR_OFF); // Cursor off
Lcd_Out(1, 1, 'Key :');
Lcd_Out(2, 1, 'Times:');
repeat
begin
kp := 0;
//--- Wait for key to be pressed
while kp = 0 do
begin
//--- un-comment one of the keypad reading functions
kp := Keypad_Released();
//kp := Keypad_Read();
end;
Inc(cnt);
//--- prepare value for output
if kp > 10 then
kp := kp + 54
else
kp := kp + 47;
//--- print it on LCD
Lcd_Chr(1, 10, kp);
WordToStr(cnt, txt);
Lcd_Out(2, 10, txt);
end;
until FALSE;
end.
Martin
Další informace o konferenci Hw-list