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?

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?

heb je wel een pull down weerstand gebruikt bij je schakelaartjes?

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

huh? dubbele post

[Bericht gewijzigd door Gerwin op ]

* Gerwin heeft er voor de rest geen verstand van maar doet toch een poging*

tot hoe ver moet hij tellen tot 10?

Wat is het cijfer dat het dichtst ligt bij 10 maar nog net kleiner is Gerwin???
Precies, 9!

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