Skocz do zawartości

Problem z programem do LCD 14*2


Pomocna odpowiedź

Nie działa 😉 przycisk 1 działa dobrze ale 2 po pierwszym wciśnięciu pokazuje yes a dopiero po drugim no 😉 nie sorry drugi też cały czas pokazuje yes

 $regfile = "M8def.DAT"
   $crystal = 8000000
   Config Lcd = 16 * 2
   Config Lcdpin = Pin , Db4 = Portc.3 , Db5 = Portc.2 , Db6 = Portc.1 , Db7 = Portc.0 , E = Portc.4 , Rs = Portc.5
   Config Pind.2 = Input
   Config Pind.3 = Input
   Pind.2 = 1
   Pind.3 = 1

   Cls 'czyścisz ekran

   Do
   cls
   Debounce Pind.2 , 0 , Yes , Sub                             '
   Debounce Pind.3 , 0 , No , Sub
   Loop

   Yes:
   Cls
   Lcd "yes"
   Waitms 250 'odczekaj 250ms i wyczyść ekran ponownie
   Cls
   loop until pind.2=1
   return

   No:
   Cls
   Lcd "no"
   Waitms 250 'odczekaj 250ms i wyczyść ekran ponownie
   Cls
   loop until pind.3=1
   return

teraz powinno działać

Bascom pokazuje błąd . Trzeba dodać 2xdo bo masz 2 "puste "(bez do na początku) loop

$regfile = "M8def.DAT"
   $crystal = 8000000
   Config Lcd = 16 * 2
   Config Lcdpin = Pin , Db4 = Portc.3 , Db5 = Portc.2 , Db6 = Portc.1 , Db7 = Portc.0 , E = Portc.4 , Rs = Portc.5
   Config Pind.2 = Input
   Config Pind.3 = Input
   Pind.2 = 1
   Pind.3 = 1

   Cls 'czyścisz ekran

   Do
   cls
   Debounce Pind.2 , 0 , Yes , Sub                             '
   Debounce Pind.3 , 0 , No , Sub
   Loop

   Yes:
   Cls
   Lcd "yes"
   Waitms 250 'odczekaj 250ms i wyczyść ekran ponownie
   Cls
   [u]loop[/u] until pind.2=1
   return

   No:
   Cls
   Lcd "no"
   Waitms 250 'odczekaj 250ms i wyczyść ekran ponownie
   Cls
[u]loop [/u]until pind.3=1
   return
$regfile = "M8def.DAT"
   $crystal = 8000000
   Config Lcd = 16 * 2
   Config Lcdpin = Pin , Db4 = Portc.3 , Db5 = Portc.2 , Db6 = Portc.1 , Db7 = Portc.0 , E = Portc.4 , Rs = Portc.5
   Config Pind.2 = Input
   Config Pind.3 = Input
   Pind.2 = 1
   Pind.3 = 1

   Cls 'czyścisz ekran

   Do
   cls
   Debounce Pind.2 , 0 , Yes , Sub                             '
   Debounce Pind.3 , 0 , No , Sub
   Loop

   Yes:
   Do
   Cls
   Lcd "yes"
   Waitms 250 'odczekaj 250ms i wyczyść ekran ponownie
   Cls
   Loop Until Pind.2 = 1


   No:
   Do
   Cls
   Lcd "no"
   Waitms 250 'odczekaj 250ms i wyczyść ekran ponownie
   Cls
   Loop Until Pind.3 = 1

teraz powinno działać jak przytrzymasz przycisk

Przycisk nr 2 działa w porządku i po przytrzymaniu pokazuje no ale 1 po przytrzymaniu/ kliknięciu pokazuje yes a za chwilę no (bez przyciśnięcia przycisku 2) 😕

  • 3 tygodnie później...

Zamieszczam program który działa

                       $regfile = "M8def.DAT"
$crystal = 8000000
Config Lcd = 16 * 2
Config Lcdpin = Pin , Db4 = Portc.3 , Db5 = Portc.2 , Db6 = Portc.1 , Db7 = Portc.0 , E = Portc.4 , Rs = Portc.5
Config Pind.2 = Input
Config Pind.3 = Input
Pind.3 = 1
Pind.4 = 1

Cls 'czyścisz ekran

Do
                           '
Debounce Pind.4 , 0 , No , Sub
Debounce Pind.3 , 0 , Yes , Sub
Loop

No:
Cls
Lcd "no"
Waitms 250 'odczekaj 250ms i wyczyść ekran ponownie
Cls
Return

Yes:
Cls
Lcd "yes"
Waitms 250 'odczekaj 250ms i wyczyść ekran ponownie
Cls
Return

to była wina jednego pinu procesora teraz już wszystko śmiga 😃

(oczywiście piwo dla Robomaniaka);D

Bądź aktywny - zaloguj się lub utwórz konto!

Tylko zarejestrowani użytkownicy mogą komentować zawartość tej strony

Utwórz konto w ~20 sekund!

Zarejestruj nowe konto, to proste!

Zarejestruj się »

Zaloguj się

Posiadasz własne konto? Użyj go!

Zaloguj się »
×
×
  • Utwórz nowe...