SchemaTheek
 
Home Nieuws Forum Schema's Artikelen Magazine Downloads Links Shops Zoeken
 
Controle Paneel
Gebruikersnaam
Wachtwoord
  Onthoud mij
» Wachtwoord?
» Registreren
Site info
» Het Team
» Contact
» FAQ
» Leden
» Upload Archief
Stats
Totaal online: 10
10 gasten
0 leden:
Forum > Digitaal > timer in picbasic
Zatar
Lid
Berichten: 256
Gepost op vrijdag 27 Maart 2009 09:36:57 QuoteWijzig

Dag allen,

Ik ben reeds een tijdje bezig aan een timer voor men nieuwe lichtbak. Blijkbaar ben ik wel nog steeds een krabber met picbasic. De volgende code zou eerst voor het testen alle ledpanelen doorlopen (heb er 3 om te kunnen kiezen volgens pcb grootte). Daarna zou de tijd ingesteld worden.
Tijd_omhoog is de subroutine voor het verhogen van de tijd, Tijd_omlaag voor het verlagen ... enz enz. Ik dacht te beginnen met het testen van het verhogen, maar aangezien dat al niet werkt post ik hier maar even...

Hetgeen niet werkt is het verhogen, de testomloop werkt wel.



Code
Device 16F628A
Config intrc_osc_noclkout, wdt_off, pwrte_on, lvp_off, mclre_off
ALL_DIGITAL true
PORTB_PULLUPS On
Clear

;Scherm instellen
DelayMS 250       ;lcd stabilisatie
Cls               ;scherm leegmaken

;Poorten instellen
;        76543210
PORTA = %00000000
PORTB = %00000000
TRISA = %11100010
TRISB = %00000011

;Logische constanten
Symbol aan = 1
Symbol uit = 0
Symbol Iaan = 0
Symbol Iuit = 1

;Constanten
Symbol Toontijd_opstarten = 2500

;Poorten benoemen
Symbol Omhoog = PORTB.0
Symbol Omlaag = PORTB.1
Symbol Start = PORTA.5
Symbol Stoppen = PORTA.1
Symbol buzzer = PORTA.0
Symbol leds1 = PORTA.2
Symbol leds2 = PORTA.3
Symbol leds3 = PORTA.4

;Variabelen declareren
Dim min_resterend As Byte
Dim sec_resterend As Byte
Dim minuten As Byte
Dim seconden As Byte
Dim buzztel As Byte

;Introductie: alle ledborden en buzzer testen
seconden = 0
minuten = 0
buzztel = 0
;              0123456789ABCDEF
Print At 1,1, "Uv-led lichtbak "
Print At 2,1, "Versie 1.0      "
DelayMS Toontijd_opstarten
Print At 1,1, "(c) 2008 Zatar  "
Print At 2,1, "                "
DelayMS Toontijd_opstarten
Print At 1,1, "Test Drive      "
Print At 2,1, "Paneel 1        "
leds3 = uit
leds1 = aan
DelayMS Toontijd_opstarten
Print At 2,1, "Paneel 2        "
leds1 = uit
leds2 = aan
DelayMS Toontijd_opstarten
Print At 2,1, "Paneel 3        "
leds2 = uit
leds3 = aan
DelayMS Toontijd_opstarten
leds3 = uit
Repeat
    buzzer = aan
    DelayMS 200
    buzzer = uit
    DelayMS 200
    Inc buzztel
Until buzztel = 5


;Hoofdprogramma: instellen tijd, starten en uitschakelen na afloop
Main:
While 1 = 1
    Tijd_instellen:     ;hier stel ik de tijd in die afgelopen moet worden
        While Omhoog = uit And Omlaag = uit And Start = uit And Stoppen = uit : Wend
        GoSub Instelling_tonen ;sub voor het printen van de tekst
        GoSub Tijd_omhoog ;in deze subroutine zal gekeken worden of de drukknop voor het verhogen van de tijd is ingedrukt.
        GoSub Tijd_omlaag ;in deze subroutine zal gekeken worden of de drukknop voor het verlagen van de tijd is ingedrukt.
        GoSub Starten ;in deze sub zal gekeken worden of start is ingedrukt, zo ja zal de tijd beginnen aftellen
Wend    


Instelling_tonen:
;                  0123456789ABCDEF
    Print At 1,1, "Tijd instelling:"
    Print At 2,1, Rep " "16
    Print At 2,1, Dec minuten, " min : ", Dec seconden, " sec"
    Return



Tijd_omhoog:
    If Omhoog = aan Then
        Inc seconden
        If seconden = 60 Then
            Inc minuten
            seconden = 0
        DelayMS 75
        EndIf
    EndIf
    Return

Tijd_omlaag:
Starten:    


End


Maffer dan hier kan je ze niet vinden ... || www.zatar.be
Er zijn nog geen reacties geplaatst.

Active Topics

» Compressor Afstandsbed...
» Inrichting laadruimte ...
» Subwoofer JBL
» Show je mini projecten
» TDA7265 (Makita werfra...
» Voeding 24V 3A Stynus
» Audi
» Werkplaatsinrichting
» Subaru Outback 2016
» De tuin.

» Meer actieve topics

Advertenties

PCBway

© 2004-2021 SchemaTheek
Laadtijd: 0.03695 sec.