Hoi,
Ik ben bezig met een pic16f84 een lichtcomputer te maken.
Nu heb ik 2 ingangen gebruikt om de snelheid te kunnen regelen dmv drukknopjes, alleen zodra ik dit doe slaat de processor vast.
Ik heb al verschillende delay's geprobeerd.
Ik heb er een kristal van 4 mhz op aangesloten.
Dit is de code die ik gebruik:
include 16f84_4
include jlib
pin_b3_direction = output
pin_b2_direction = output
pin_b1_direction = output
pin_b0_direction = output
pin_a3_direction = output
pin_a2_direction = output
pin_a0_direction = output
pin_a1_direction = output
pin_b7_direction = input
pin_b6_direction = input
var byte a
a = 5
forever loop
pin_b3 = high
pin_b2 = low
pin_b1 = high
pin_b0 = low
pin_a3 = high
pin_a2 = low
pin_a0 = high
pin_a1 = low
if pin_b7 == high
then
if a < 10
then
a = a + 1
end if
end if
if pin_b6 == high
then
if a > 0
then
a = a - 1
end if
end if
delay_200ms(a)
pin_b3 = low
pin_b2 = high
pin_b1 = low
pin_b0 = high
pin_a3 = low
pin_a2 = high
pin_a0 = low
pin_a1 = high
if pin_b7 == high
then
if a < 10
then
a = a + 1
end if
end if
if pin_b6 == high
then
if a > 0
then
a = a - 1
end if
end if
delay_200ms(a)
end loop
Als ik de tijden niet variabel maak loopt hij niet vast.
En dan nog een kleine vraag tot slot:
RA4 is niet direct te gebruiken als in/uitgang, hoe kan ik deze toch gebruiken?
Met betrekking tot je tweede vraag:
ik denk dat de fout hier zit:
pin_b7 == high
then
if a < 10
then
a = a + 1
end if
end if
if pin_b6 == high
then
if a > 0
then
a = a - 1
end if
end if
wat ik altijd doe als iets aan twee voorwaarden moet doen is de if's koppelen met &. zo wordt het dan dus:
pin_b7 == high & a < 10
then
a = a + 1
end if
if pin_b6 == high & a > 0
then
a = a - 1
end if
ik weet het niet of het op jouw manier kan maar probeer het eens op de bovenstaande manier.
succes!
Op 8 mei 2003 13:38:32 schreef Wouter SSijm:
ik weet het niet of het op jouw manier kan maar probeer het eens op de bovenstaande manier.succes!
Ik heb even getest, volgens mij maakt het niets uit, maar toch bedankt:)
Ik heb ook getest of het misschien aan de microcontroller lag, maar met een andere precies het zelfde probleem.
Snelheid verlagen werkt trouwens wel 100%, maar verhogen niet.
Als ik de knop indruk/jumperpennen kortsluit dan gaat hij idd wel sneller lopen, maar wanneer ik ze loslaat gaat hij door met steeds sneller lopen om uiteindelijk waarschijnlijk te snel te gaan lopen en zodoende vast te lopen, volgens mij heeft hij dus niet door dat hij weer losgelaten(0/off) is ofzo.
Ik heb ookal andere programma's geprobeerd, maar ik kan zo niets bedenken dat een ander principe gebruikt.
Heeft iemand dit misschien vaker gehad?
Op 8 mei 2003 16:07:32 schreef Wouter SSijm:
heb je wel een pull down weerstand gebruikt bij je schakelaartjes?
Nee, waar moet ik die tussen/aan zetten en welke waardoe moet die hebben?
Ik dacht nl dat dit niet hoefde omdat een simpel testje waarbij wanneer je een knop indrukte een led 8 seconde oplichte wel werkte.
Op 8 mei 2003 16:13:15 schreef Jorn:
[...]
Nee, waar moet ik die tussen/aan zetten en welke waardoe moet die hebben?
Ik dacht nl dat dit niet hoefde omdat een simpel testje waarbij wanneer je een knop indrukte een led 8 seconde oplichte wel werkte.
je moet dan een weerstandje van 10k aan de ene kant aan de poort van je pic doen en de andere kant naar de gnd van je schakeling. Grote kans dat hij het dan wel doet. nogmaals succes!
Op 8 mei 2003 16:52:24 schreef Wouter SSijm:
[...]
je moet dan een weerstandje van 10k aan de ene kant aan de poort van je pic doen en de andere kant naar de gnd van je schakeling. Grote kans dat hij het dan wel doet. nogmaals succes!
Helaas, dit mag ook niet baten 
Ik denk nu toch dat het een softwarefout is, want eigenlijk zou hij gewoon moeten stoppen als het allemaal te hard gaat, zie:
if pin_b7 == high & a < 10
then
a = a + 1
end if
Gerwin
An amplifier is just a modulator for a power supply |Toffe Gebruiker
huh? dubbele post
[Bericht gewijzigd door Gerwin op ]
Gerwin
An amplifier is just a modulator for a power supply |Toffe Gebruiker
* Gerwin heeft er voor de rest geen verstand van maar doet toch een poging*
tot hoe ver moet hij tellen tot 10?
Gerwin
An amplifier is just a modulator for a power supply |Toffe Gebruiker
Op 9 mei 2003 21:18:58 schreef Carel M.:
Wat is het cijfer dat het dichtst ligt bij 10 maar nog net kleiner is Gerwin???
Precies, 9!
zoals boven mijn vorige post stond ik heb der geen verstand van maar ik probeer het sinds 2 dagen te leren:D