Ik wil met één druk op de knop dat er twee uitgangen gaan 'toggelen'.
Het probleem is dat het alleen werkt zolang de schakelaar is ingedrukt. Ik wil dat de uitgangen blijven 'toggelen' tot dat er een andere schakelaar wordt ingedrukt.
Verschillende dingen geprobeerd (repeat-until, while-wend, enz) maar het lukt niet echt.
Ibanez
Een atx voeding is geen labvoeding, en je kunt er geen auto mee starten ook
Een variabele aanmaken die de toestand van de knop onthoud?
Buttonpressed = 1 of 0 bijvoorbeeld en dit goed bijhouden in je programma.
Verder nog een while lus en wat andere code. Hopelijk heb je hier wat aan.
Op 1 november 2007 00:34:59 schreef Ibanez:
If knop = 1 then toggle portb.1ect.
Ja klopt maar ik wil dat de uitgang op toggle blijft ook als ik de knop weer loslaat
Op 1 november 2007 00:35:35 schreef JuuL:
Een variabele aanmaken die de toestand van de knop onthoud?
Buttonpressed = 1 of 0 bijvoorbeeld en dit goed bijhouden in je programma.
Verder nog een while lus en wat andere code. Hopelijk heb je hier wat aan.
Ja nu nog dat stukje code
[Bericht gewijzigd door Henry S. op (42%)]
Ferry
Ferry.......
Iets als dit zal wel gaan werken denk ik.
buttonpressed=0
start:
if s1=low then buttorpressed=1
while buttonpressed = 1
toggle portb.1
toggle portb.2
delayms xxxxx
if s1=high then buttonpressed = 0
wend
goto start
Jochem
If you want to succeed, double your failure rate.
Kevinoud
Een zak tuinaarde opescheuren
hiermee moet et wel lukken.
greetz
DEVICE 16F628A ;We gebruiken een 16F628A type
CONFIG INTRC_OSC_NOCLKOUT, WDT_OFF, PWRTE_ON, LVP_OFF, MCLRE_OFF
ALL_DIGITAL TRUE ;Alle ingangen digitaal
Symbol S1 = PORTB.0
dim ButtonPressed as bit
while 1 = 1
if S1 = 0 then
buttonpressed = 1
else buttonpressed = 0
if buttonpressed = 1
toggle portb.1
toggle portb.2
delayms 500
endif
if buttonpressed = 0 then
low portb.1
low portb.2
endif
wend
Herman R.
LEDsREPAIR - Wie oude kennis koestert en voortdurend nieuwe vergaart, mag een leraar van anderen zijn
Welke basic gebruik je? Want in proton is er zelfs een speciaal commando Button. Dit zorgt voor ontdendering en zoverder al in een commando.
Kevinoud
Een zak tuinaarde opescheuren
Op 1 november 2007 16:46:09 schreef ruben herman:
Welke basic gebruik je? Want in proton is er zelfs een speciaal commando Button. Dit zorgt voor ontdendering en zoverder al in een commando.
Proton gebruik ik.
Dit is de bedoeling:
bij het indrukken van een knop (aan knop) moet een lampje gaan knipperen tot dat ik een andere knop indruk (reset knop)
Als ik de aanknop los laat moet het lampje blijven knipperen
pseudocode:
aan=false
WHILE 1=1
IF druk1 SET aan
IF druk2 RESET aan
IF aan=true TOGGLE UITGANG
DELAY 500
ENDIF
WEND
Geen één code werkt 
Het moet als volgt werken:
Knop AAN is normaal 1, wanneer deze ingedrukt wordt (0) dan moet een uitgangen blijven togglen.
Dit kan alleen gestopt worden met Knop RESET.
RESET wordt bij het indrukken hoog, dus niet als schakelaar AAN.
Waarom werkt dit niet?
Device 16f84a
symbol AAN porta.2
Symbol RESET porta.3
symbol Led1 portb.2
symbol led2 portb.3
while 1=1
If AAN= 0 then ; AAN knop ingedrukt=0
repeat
toggle led1
toggle led2
delayms 500
until reset=1 ; RESET knop ingedrukt=1
Endif
if reset=1 then
low led1 ; Led uit
low led2 ; Led uit
Endif
Wend
Kijk eens op www.picbasic.nl
je contacten denderen.
[Bericht gewijzigd door Henry S. op (58%)]
Dat zou toch niet uit moeten maken?
Als ik AAN los laat stoppen de leds met knipperen dus REPEAT UNTIL werkt niet denk ik.
Als ze het zo niet doen laat ik ze donderen ja
Ik heb trouwens de hele site cursus uitgeprint en gelezen (volgens mij
)
[Bericht gewijzigd door Henry S. op (54%)]
-Je zit niet op MSN, gebruik de edit op de juiste manier, en gebruik de antwoorden link voor direkte antwoorden zonder onnodige quotes.
-De cursus moet je leren door te doen en te experimenteren, je maakt me niet wijs dat je dat nu allemaal gedaan hebt, het is geen knip&plak cursus!
-Als je de cursus gelezen hebt, dan weet je ook wat ontdenderen betekent.
-War zijn je fuses?
Op 2 november 2007 18:34:37 schreef Henry S.:
-Je zit niet op MSN
Klopt ik zie die smiletjes niet en ook niet wie er online is 
Op 2 november 2007 18:34:37 schreef Henry S.:
-War zijn je fuses?
In de zekeringen bakjes 
Dat is niet de code die ik gebruikt heb.
De fuses (de config toch?) kan ik instellen via de ChipMax van EETools. Zijn als volgt:
OSCILLATORRRRR HS High Speed
WATCHDOG TIMER Enable
POWER UP TIMER Enable
MEMORY PROTECT Disable
Ik heb er een 6 MHZ kristal er op aangesloten (moest in PicBasic 4 MHZ instellen)
Ik weet ook wat dat ontdenderen enz is maar dat is het probleem toch niet? Dan zouden de ledjes alsnog moeten blijven knipperen.
[Bericht gewijzigd door TheKing op (14%)]
Laat een ledje knipperen zonder schakelaars. Of zonder 'AAN' knop.
[Bericht gewijzigd door Henry S. op (20%)]
Ja dat lukt wel. Ik heb een programma met 511 words, 5 ingangen en 5 uitgangen ongeveer. Dit is mijn eerste echte PicBasic programma. Bijna alles doet het.
Alleen dat gedeelte van de schakelaar doet het niet goed.
Hij stopt er mee zodra ik de schakelaar los laat maar dat is niet de bedoeling.
Ik ga even dat verhaal lezen van de dat denderen gedoe maar ik denk niet dat het daar aan ligt.
Ik begin een beetje verdrietig te wordennu..
Net ook trouwens 
Device 16f84a
config PWRTE_ON
ALL_DIGITAL TRUE
xtal 4
Clear
PORTA = %00000000
PORTB = %00000000
TRISA = %11111
TRISB = %01000000
symbol KnopIN=porta.3 ; Aan Button Input
symbol ResetIN= portb.0 ; Reset Key Input
symbol Led1OUT= Portb.3 ; Lamp 1 Output
symbol Led2OUT= portb.4 ; Lamp 2 Output
Clear
While 1=1
If knopin= 1 and resetin=0 then ; AAN knop ingedrukt=1
repeat
toggle led1out
toggle led2out
delayms 500
until resetin=1 ; RESET knop ingedrukt=1
Endif
if resetin=1 then
low led1out ; Led uit
low led2out ; Led uit
Endif
Wend ;Werkt ook niet ik KnopAAN loslaat stoppen de ledjes met knipperen
Geen onnodige quotes en posts editten binnen 24 uur.
[Bericht gewijzigd door Henry S. op (0%)]
Op 2 november 2007 18:40:48 schreef TheKing:
Klopt ik zie die smiletjes niet en ook niet wie er online is
Wat dacht je in plaats van dom lullen je post gedrag aan te passen?
Mijn hint kwam niet echt aan blijkbaar...
repeat
toggle led1
toggle led2
delayms 500
until reset=1 ; RESET knop ingedrukt=1
Endif
Dit stukje testen, zonder aan-toets dus.
Werkt ook niet de ledjes blijven togglen ook wanneer ik reset op +Vdc zet. Hoe kan dat? Is mijn Pic (processor
) niet helemaal in orde?
En dit lukt ook niet:
Device 16f84a
config PWRTE_ON
ALL_DIGITAL TRUE
xtal 4
symbol KnopIN=porta.3 ; Door Switch Input
symbol ResetIN= portb.0 ; Reset Key Input
symbol Led1OUT= Portb.3 ; Lamp 1 Output
symbol Led2OUT= portb.4 ; Lamp 2 Output
Clear
While 1=1
repeat
toggle led1out
toggle led2out
delayms 500
until resetin=1 ; RESET knop ingedrukt=1
low led1out
low led2out
Ledjes blijven aan als ik RESET activeer dat klopt toch ook niet? Heb net een andere 16F84A geprobeerd maar die doet hetzelfde. Wie weet het?
[Bericht gewijzigd door Henry S. op (7%)]
marcob
Honourable Member
People tend to overestimate what can be done in one year and to underestimate what can be done in five or ten years
Is dit je complete code, ik mis veel. Je hebt een while zonder wend. Ik mis de poort instellingen aan het begin. Heb je wel de (eens) de site www.picbasic.nl bekenken. En mischien de cursus eens doorlopen?
Frits Kieftenbelt
Ohm sweet Ohm | www.picbasic.nl
TheKing, leg nog een keer uit wat je precies wil want dat is niet 100% duidelijk.
Je schrijft dat je 2 uitgangen wilt togglen met een drukknop maar als je de knop loslaat dat ie door moet gaan met knipperen.
Wat moet er nu precies gebeuren want je kunt je vraag op meerdere manieren uitleggen?
- Moeten de 2(?) uitgangen pas beginnen met knipperen en blijven knipperen als je de knop hebt ingedrukt (en weer loslaat)?
- Moet het knipperen getoggled worden (eerst de ene uitgang, bij druk op de toets togglen naar de andere uitgang)?
Schrijf preciezer wat je wilt.
@ marcob: nee complete code was het niet. ik heb die hele picbasic cursus uitgeprint en gelezen.
@ moderator: ik snap niet wat er irritant is. dit is toch een forum waar mensen vragen mogen stellen?
Device 16f84a
config PWRTE_ON
ALL_DIGITAL TRUE
xtal 4
symbol KnopIN=porta.3 ; Door Switch Input
symbol ResetIN= portb.0 ; Reset Key Input
symbol Led1OUT= Portb.3 ; Lamp 1 Output
symbol Led2OUT= portb.4 ; Lamp 2 Output
Clear
While 1=1
repeat
toggle led1out
toggle led2out
delayms 500
until resetin=1 ; RESET knop ingedrukt=1
low led1out
low led2out
Wend @ Frits:
Dat gedeelte van het programma moet als volgt werken:
Bij het opstarten staat alles uit.
Zodra er op AAN gedrukt wordt (langer dan 50 mS bijvoorbeeld, maar dit gedeelt mag ook later) moeten de ledjes gaan knipperen.
Deze mogen alleen uit als RESET (drukknop) ingedrukt wordt en ze moeten uitblijven tot dat er weer op AAN (drukknop) ingedrukt wordt.
Hij zou heel simpel moeten gaan maar toch lukt het niet.
[Bericht gewijzigd door Henry S. op (22%)]