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