Nastavenie hodin tlacidlami

Moderátori: psichac, Moderátori

Používateľov profilový obrázok
pablox
Ultimate člen
Ultimate člen
Príspevky: 1735
Dátum registrácie: 19 Júl 2006, 00:00
Bydlisko: Ruzomberok
Vek: 32
Kontaktovať používateľa:

Nastavenie hodin tlacidlami

Príspevok od používateľa pablox » 22 Mar 2013, 18:42

Ahojte,
robim si jednoduchy program v bascome (nebite ma :D ), jedna sa o to, ze potrebujem vytvorit podprogram ktory bude ovladany dvomi tlacitkami - SET a +. Potrebujem za sebou zadat 5 hodnot (hod, min, den, mesiac, rok) tak, ze stlacim prve tlacidlo, druhym zinkrementujem hodiny kazdym stlacenim o 1, potom stlacim prve tlacidlo, presuniem sa na minuty a druhym tlacidlom nastavim minuty atd. Nakoniec vyskocim z podprogramu a vratim sa aj s nastavenymi hodnotami do hlavneho programu. Spravil som zatial program pre hodiny a minuty, problemom je:
na zaciatku sa zobrazi uvodny vypis, nastavim hodiny, minuty ale po dalsom stlaceni tlacidla mi to skoci zase na nastavenie hodin. Neviem akym sposobom mam vyskocit z toho podprogramu do hlavneho kde sa zobrazia hodnoty. Skusal som exit sub, exit function...proste to akoby skakalo stale medzi nastavenim hodin a minut...tu je zdrojak:"

Kód: Vybrať všetko

$regfile = "m8def.DAT"
$crystal = 8000000                                          'frekvencia procesora = 1Mhz, Lfuse=0xE1 Hfuse=0xD9


'Inicializacia LCD
Config Lcdpin = Pin , Db4 = Portb.4 , Db5 = Portb.3 , Db6 = Portb.2 , Db7 = Portb.1 , E = Portb.5 , Rs = Portc.5
Config Lcd = 16 * 2                                         'typ LCD, v tomto pripade 16x2

Cursor Off Noblink

' Specialne znaky
Deflcdchar 0 , 7 , 5 , 7 , 32 , 32 , 32 , 32 , 32           ' znak stupna


'Prve tlacidlo
Config Portb.0 = Input
Config Portc.2 = Input
Tl1 Alias Pinc.2
Tl2 Alias Pinb.0


Portb.0 = 1
Portc.2 = 1
Dim Hod As Integer
Dim Minuty As Integer
Dim Den As Integer
Dim Mes As Integer
Dim Rok As Integer
Dim Stav As Integer
Den = 0
Minuty = 0
Den = 0
Mes = 0
Rok = 2013
Declare Sub Set_hod(hod As Integer)
Declare Sub Set_min(minuty As Integer)


Do
Cls
Locate 1 , 1
Lcd Hod ; ":" ; Minuty
Locate 2 , 1
Lcd Den ; "-" ; Mes ; "-" ; Rok
If Tl2 = 0 Then
   Call Set_hod(hod)
End If
Waitms 250
Loop


Sub Set_hod( , Hod As Integer)
Do
      Cls
      Locate 1 , 1
      Lcd "Hodiny>" ; Hod
      If Tl1 = 0 Then
         Hod = Hod + 1
         Cls
         Lcd "Hodiny>" ; Hod
         If Hod = 24 Then
            Hod = 0
         End If
      End If
      Waitms 250
      If Tl2 = 0 Then
         Call Set_min(minuty)
      End If
Loop
End Sub

Sub Set_min( , Minuty As Integer)
Do
      Cls
      Locate 1 , 1
      Lcd "Min>" ; Minuty
      If Tl1 = 0 Then
         Minuty = Minuty + 1
         Cls
         Lcd "Min>" ; Minuty
         If Minuty = 24 Then
            Minuty = 0
         End If
      End If
      Waitms 250
      If Tl2 = 0 Then
         Exit Function
      End If
Loop
End Sub
Dakujem za pomoc :)
0

popopepe
Stály člen
Stály člen
Príspevky: 404
Dátum registrácie: 22 Jún 2009, 00:00

Re: Nastavenie hodin tlacidlami

Príspevok od používateľa popopepe » 22 Mar 2013, 20:04

Před první DO v hlavní smyčce doplň

zacatek:
Do...
....
Loop


a před to poslední Exit Function doplň GOTO zacatek

If Tl2=0 then
goto zacatek
exit function
....
0

Používateľov profilový obrázok
pablox
Ultimate člen
Ultimate člen
Príspevky: 1735
Dátum registrácie: 19 Júl 2006, 00:00
Bydlisko: Ruzomberok
Vek: 32
Kontaktovať používateľa:

Re: Nastavenie hodin tlacidlami

Príspevok od používateľa pablox » 23 Mar 2013, 13:47

Skusal som ale nepomohlo to, stale mi to skace na nastavenie od zaciatku a hodnoty nevypise.
0

popopepe
Stály člen
Stály člen
Príspevky: 404
Dátum registrácie: 22 Jún 2009, 00:00

Re: Nastavenie hodin tlacidlami

Príspevok od používateľa popopepe » 23 Mar 2013, 14:54

Zkus tohle. Možná bude problém v tom testování tlačitek. Lepší je debounce.
Prílohy
nethodinysmazat.zip
(834 Bajtov) 81 stiahnutí
0

Používateľov profilový obrázok
pablox
Ultimate člen
Ultimate člen
Príspevky: 1735
Dátum registrácie: 19 Júl 2006, 00:00
Bydlisko: Ruzomberok
Vek: 32
Kontaktovať používateľa:

Re: Nastavenie hodin tlacidlami

Príspevok od používateľa pablox » 23 Mar 2013, 17:31

Uz som to vyriesil kusok inak - hodiny sa nastavia na zaciatku programu a potom uz bezia bez nastavovani a odkazujem len na hlavny program. Dakujem ale za pomoc a prajem pekny den :)
0

Napísať odpoveď
  • Podobné témy
    Odpovedí
    Zobrazení
    Posledný príspevok