hallo ben pas ingestapt in de picbasic taal en heb al een aantal delen van picbasic.nl doorgenomen
Nu zou ik graag een timer maken met 2 drukknopjes
druk ik op knop 1 begint er een tijd te lopen en zodra deze tijd is verlopen word een uitgang van de pic terug laag
druk ik op knop 2 terwijl de tijd van voorgaande nog niet verlopen is wordt de uitgang onmiddellijk terug laag
dit lukt me allemaal maar met een tijd van een paar minuten(delayms)
nu zou ik die tijd een drietal uur moeten kunnen maken maar vind niet zo direkt de oplossing,ben nog maar beginner he,kan iemand me zeggen wat of hoe ik dit moet doen om dit kunnen te realiseren
groetjes elco boy
winjohan
When you think you have it dummy proof they come up with a better dummy!
Boy,
Ik vermoed dat het met delays moelijk gaat worden 
Ik zou het oplossen door de timer 0 te gebruiken (bv 4 Ms)en dan op basis van een interrupt 1 seconden tellen en dan de seconden tellen todat je op 3 uur komt, en in de interupt de toetsen controlleren
Hoe nauwkeurig moet die 3 uur zijn of met andere woorden welke toepassing heb je voor ogen
succes Johan
Stan1
Read the fuc.... manual and read the fuc.... datasheet! {Proton IDE: V2.0.1.2 / Proton Compiler: V3.5.4.5}
Je kunt het met interrupts doen, maar dat is niet iets voor beginners.
Maar je kunt het ook via een delay van millisecondes doen:
Dim TMs As Word
Dim TSec As Byte
Dim TMin As Byte
Dim THour As Byte
Main_Loop:
DelayMS 1
Inc TMs
If TMs > 999 Then TMs = 0 : Inc TSec
If TSec > 59 Then TSec = 0 : Inc TMin
If TMin > 59 Then TMin = 0 : Inc THour
If THour = 3 And TMin = 0 And TSec = 0 And TMs = 0 Then
; Opdracht Uitvoeren
EndIf
GoTo Main_Loop
Stan1
Read the fuc.... manual and read the fuc.... datasheet! {Proton IDE: V2.0.1.2 / Proton Compiler: V3.5.4.5}
Op 30 oktober 2011 19:27:57 schreef tysie:
Deze is niet nauwkeurig omdat al die opdrachten ook tijd innemen
De TS vraagt volgens mij ook niet om nauwkeurigheid.
En ook is het (volgens mij) zo dat Picbasic zelf de juiste wachttijd berekend.
hallo stan ik begrijp min of meer die programmaregels
maar hoe zet ik nu bij dit programma byv. dat als s1(drukknop)porta.0,even laag is, geweest dat dan uw programma zal aftellen en de gewenste poort byv. portb.0 zolang hoog blijft tot als de teller gedaan heeft
Sorry voor de misschien domme vragen maar heb nog veel bij te leren,vooral ook dankzij jullie hulp
groetjes elco boy
Stan1
Read the fuc.... manual and read the fuc.... datasheet! {Proton IDE: V2.0.1.2 / Proton Compiler: V3.5.4.5}
Hai,
Allereerst: Domme vragen bestaan niet, domme antwoorden wel!
En ja eens hebben we het allemaal moeten leren!
Symbol S1 = PORTA.0 ; Switch Aan
Symbol S2 = PORTA.1 ; Switch Uit
Symbol Led = PORTB.0
TRISA.0 = 1
TRISA.1 = 1
TRISB.0 = 0
Main_Loop:
If S1 = 1 And Led = 0 Then Led = 1 ; Wanneer Led uit is en S1 is actief dan led aan!
If S2 = 1 And Led = 1 Then Led = 0 ; wanneer Led aan is en S2 is actief dan led uit en timer stoppen
DelayMS 1
If Led = 1 Then
Inc TMs
If TMs > 999 Then TMs = 0 : Inc TSec
If TSec > 59 Then TSec = 0 : Inc TMin
If TMin > 59 Then TMin = 0 : Inc THour
If THour = 3 And TMin = 0 And TSec = 0 And TMs = 0 Then Led = 0
Else ; Wanneer Led uit is, dan timers ressetten!
TSec = 0
TMin = 0
THour = 0
TMs = 0
EndIf
GoTo Main_Loop
hallo terug ik heb net uw programma geladen in de lite versie van picbasic maar krijg een foutmelding bij INC Tms
enig idee waar dit aan ligt
groetjes
Stan1
Read the fuc.... manual and read the fuc.... datasheet! {Proton IDE: V2.0.1.2 / Proton Compiler: V3.5.4.5}
Ja, waarschijnlijk is de variabel TMS is niet gedimensioneerd!
Dim TMs As Word ; <
Dim TSec As Byte
Dim TMin As Byte
Dim THour As Byte
hallo stan 1
het programma loopt nu gesmeerd maar ik zou het eens willen testen als de tijd i p v 3uur nu maar eens 1 minuut zou zijn,kwestie van niet te lang te moeten wachten,ik zie de logica van de nummers,wat de tijd betreft, er niet van in,vandaar mijn vraag
alvast bedankt voor alle goede hulp,al veel geleerd op een paar avonden van u,dankuwel
sorry voor de onmiddellijke reactie,maar ik heb het doorgrond en snap het systeem
bedankt voor alle goede hulp
groetjes aan iedereen
[Bericht gewijzigd door Henry S. op (15%)]
Stan1
Read the fuc.... manual and read the fuc.... datasheet! {Proton IDE: V2.0.1.2 / Proton Compiler: V3.5.4.5}
Graag gedaan hoor!
Eigenlijk is het heel eenvoudig.
De wachttijd is 1mS (zie de DelayMS 1 in de Main_Loop)
Inc TMs Hier word steeds de TMs variabel met 1 verhoogd.
er zitten 1000x 1mS in 1 seconden.
If TMs > 999 Then TMs = 0 : Inc TSec
Wanneer TMs groter is dan 999, dan word de TMs variabel op 0 gezet.
En de seconden teller 1 opgehoogd: Inc TSec
Bovenstaande geld ook voor de andere tijds variabelen.
Maar alleen wanneer de led aan is "If Led = 1 Then"
If THour = 3 And TMin = 0 And TSec = 0 And TMs = 0 Then Led = 0
Hier word dus bepaald dat na 3 uur de led uit gaat!
If THour = 0 And TMin = 2 And TSec = 0 And TMs = 0 Then Led = 0
In bovenstaand voorbeeld word de led na 2 minuten uit gezet.
Hopelijk zo iets duidelijker!