hallo ik wil een teller maken zodat je eerst 15 keer op een knopje moet drukken en dan gaat er een led branden. nu heb ik dit geprobeerd maar als ik het uitvoer en ik druk een keer op het knopje gaat het ledje al branden. wat is hier het probleem?
Device 16F628A ;Gebruik een 16F628A type
Config INTRC_OSC_NOCLKOUT, WDT_OFF, PWRTE_ON, LVP_OFF, MCLRE_OFF
ALL_DIGITAL TRUE ;Alle ingangen digitaal
PORTB_PULLUPS On
Dim teller As Byte
Clear
teller = 15
Repeat
If PORTB.0 = 0 Then Dec teller
Until teller = 0
High PORTA.1
End
je repeat iets, maar je geeft niet aan tot waar dat loopje moet lopen
beter kijken , pfff:p
idd, je moet wachten met aftellen tot de knop weer losgelaten is
[Bericht gewijzigd door JesperR op (42%)]
je kan een subje maken.met een oneindig loopje en dat het pas terug gaat naar het aftellen van je teller zodra de knop los is.
is dit nou diezeelfde pic als dat ene topic ?
aah dat is al gelukt zie ik 
[Bericht gewijzigd door JesperR op (10%)]
Arco
Special Member
Arco - "Simplicity is a prerequisite for reliability" - hard-, firm-, en software ontwikkeling: www.arcovox.com
Device 16F628A ;Gebruik een 16F628A type
Config INTRC_OSC_NOCLKOUT, WDT_OFF, PWRTE_ON, LVP_OFF, MCLRE_OFF
ALL_DIGITAL TRUE ;Alle ingangen digitaal
PORTB_PULLUPS On
Dim teller As Byte
Clear
teller = 15
Repeat
If PORTB.0 = 0 Then GoSub WachtopLaag
Until teller = 0
High PORTA.1
End
;sub
WachtopLaag:
While 1=1
If PORTB.0 = 1 Then Return
Wend
zoiets ?
zou t meteen moeten doen,
het is handig dat je ook snapt waarom het vorige niet werkte. je moet daarvoor tog n bepaald soort inzicht krijgen in t programma verloop.
die loop heet wel wachtoplaag, maar hij wacht op t hoog worden uiteraard 
[Bericht gewijzigd door JesperR op (19%)]
deze doet helemaal niets de led gaat niet aan na 15 keer klikken. maar volgensmij word er in jouw code nergens afgeteld?
leip11
hoe hoger in de mast aan het werk, hoe mooier het uitzicht
heb je ook al op picbasic.nl gekeken bij de cursus daar wordt dit ook uitgelegd hoe je dit moet doen.
ja 'k heb al gekeken op picbasic maar daar moet wat aan veranderd worden. waar moet ik de "dec teller" zetten?
leip11
hoe hoger in de mast aan het werk, hoe mooier het uitzicht
dat staat toch allemaal uitgelegd in de cursus. als je die nou eerst volgt dan wordt het vanzelf duidelijker hoe het allemaal werkt
Device 16F628A ;Gebruik een 16F628A type
Config INTRC_OSC_NOCLKOUT, WDT_OFF, PWRTE_ON, LVP_OFF, MCLRE_OFF
ALL_DIGITAL TRUE ;Alle ingangen digitaal
PORTB_PULLUPS On
Dim teller As Byte
Clear
teller = 15
Repeat
If PORTB.0 = 0 Then GoSub WachtopLaag
Dec teller
Until teller = 0
High PORTA.1
End
;sub
WachtopLaag:
While 1=1
If PORTB.0 = 1 Then Return
Wend
zo dus??
jij zegt dat ie in het subje moet. maar hij moet eerst weer open zijn de schakelaar. dus moet ie na gosub toch??
Repeat
If PORTB.0 = 0 Then GoSub WachtopLaag
Dec teller
Until teller = 0
het loopje duurt toch tot until teller = 0
pak eens n papiertje en schrijf eens op wat t programma moet, zowel als de knop word ingedrukt als dat hij niet word ingedrukt.
ik wil t ook wel zeggen, maar dan maar jij de volgendekeer weer een topic aan met zoiets. dus ik probeer je nu wat te laten leren
Device 16F628A ;Gebruik een 16F628A type
Config INTRC_OSC_NOCLKOUT, WDT_OFF, PWRTE_ON, LVP_OFF, MCLRE_OFF
ALL_DIGITAL TRUE ;Alle ingangen digitaal
PORTB_PULLUPS On
Dim teller As Byte
Clear
teller = 15
Repeat
If PORTB.0 = 0 Then GoSub WachtopLaag
Until teller = 0
High PORTA.1
End
;sub
WachtopLaag:
While 1=1
If PORTB.0 = 1 Then Return
Dec teller
Wend
zo dan?? ik had het onderste gedeelte niet gezien.
ja maar dat moet toch ook want je geeft eerder aan dat de teller op 15 word ingesteld en hij moet aftellen naar 0. dus hij moet elke keer eentje aftellen