ben bezig met de PIC16f628 te progge voor project, dit is m'n eerste project, maar na gesprek me Aedolon begin ik mij vragen te stellen. Hier volgt m'n code.
include 16f628_10
include jlib
port_a_direction = all_input
port_b_direction = all_output
procedure LR is
if pin_a3 == high then port_b = 0b_1000_0000 end if
if pin_a3 == low then port_b = 0b_0100_0000 end if
if pin_a3 == high then port_b = 0b_0010_0000 end if
if pin_a3 == low then port_b = 0b_0001_0000 end if
end procedure
procedure RL is
if pin_a3 == high then port_b = 0b_0001_0000 end if
if pin_a3 == low then port_b = 0b_0010_0000 end if
if pin_a3 == high then port_b = 0b_0100_0000 end if
if pin_a3 == low then port_b = 0b_1000_0000 end if
end procedure
procedure dubbel is
if pin_a3 == high then port_b = 0b_1100_0000 end if
if pin_a3 == low then port_b = 0b_0011_0000 end if
end procedure
procedure rand1 is
if pin_a3 == high then port_b = 0b_1000_0000 end if
if pin_a3 == low then port_b = 0b_1100_0000 end if
if pin_a3 == high then port_b = 0b_1110_0000 end if
if pin_a3 == low then port_b = 0b_1111_0000 end if
if pin_a3 == high then port_b = 0b_0111_0000 end if
if pin_a3 == low then port_b = 0b_0011_0000 end if
if pin_a3 == high then port_b = 0b_0001_0000 end if
if pin_a3 == low then port_b = 0b_0000_0000 end if
end procedure
procedure rand2 is
if pin_a3 == high then port_b = 0b_1000_0000 end if
if pin_a3 == low then port_b = 0b_0010_0000 end if
if pin_a3 == high then port_b = 0b_0100_0000 end if
if pin_a3 == low then port_b = 0b_0010_0000 end if
if pin_a3 == high then port_b = 0b_0001_0000 end if
if pin_a3 == low then port_b = 0b_1100_0000 end if
if pin_a3 == high then port_b = 0b_0001_0000 end if
if pin_a3 == low then port_b = 0b_0000_0000 end if
end procedure
procedure rand3 is
if pin_a3 == high then port_b = 0b_1001_0000 end if
if pin_a3 == low then port_b = 0b_0110_0000 end if
if pin_a3 == high then port_b = 0b_1000_0000 end if
if pin_a3 == low then port_b = 0b_1001_0000 end if
if pin_a3 == high then port_b = 0b_0101_0000 end if
if pin_a3 == low then port_b = 0b_0100_0000 end if
if pin_a3 == high then port_b = 0b_0110_0000 end if
if pin_a3 == low then port_b = 0b_1000_0000 end if
end procedure
procedure rand4 is
if pin_a3 == high then port_b = 0b_1000_0000 end if
if pin_a3 == low then port_b = 0b_0100_0000 end if
if pin_a3 == high then port_b = 0b_0010_0000 end if
if pin_a3 == low then port_b = 0b_0001_0000 end if
if pin_a3 == high then port_b = 0b_0010_0000 end if
if pin_a3 == low then port_b = 0b_0100_0000 end if
end procedure
procedure rand5 is
if pin_a3 == high then port_b = 0b_0000_0000 end if
if pin_a3 == low then port_b = 0b_1111_0000 end if
if pin_a3 == high then port_b = 0b_0000_0000 end if
if pin_a3 == low then port_b = 0b_1100_0000 end if
if pin_a3 == high then port_b = 0b_0011_0000 end if
if pin_a3 == low then port_b = 0b_0000_0000 end if
if pin_a3 == high then port_b = 0b_1001_0000 end if
if pin_a3 == low then port_b = 0b_0110_0000 end if
end procedure
forever loop
if port_a == 000 then LR end if
if port_a == 001 then RL end if
if port_a == 010 then dubbel end if
if port_a == 011 then rand1 end if
if port_a == 100 then rand2 end if
if port_a == 101 then rand3 end if
if port_a == 110 then rand4 end if
if port_a == 111 then rand5 end if
end loop
beetje uitleg.
Tis de bedoeling dat er in iedere procedure naar volgende toestand wordt gegaan. Er mag pas worden veranderd als a3 veranderd. a3 is een pulssignaal. Deuitgangen worden gekoppeld aan triac's om zo spotjes aan te sturen.
Gaat dit werken of niet???
alvast bedankt!
Wouter van Ooijen
Wouter van Ooijen: VOTI webwinkel, docent HvU (Technische Informatica); C++ on mictrocontrollers blog
Op 9 november 2003 21:49:44 schreef tom v:
Gaat dit werken of niet???
Niet zonder wijziging. Die if-jes waarme je de input test wachten niet, je zult expliciet moeten wachten (while loop).
Aedolon
Just face it: sometimes nobody envies you. There has to be a bottom and that bottom is probaly you. // http://www.amazon.com/o/registry/VWZ93N4Y6XQT
Op 9 november 2003 22:47:26 schreef Wouter van Ooijen:
[...]
Niet zonder wijziging. Die if-jes waarme je de input test wachten niet, je zult expliciet moeten wachten (while loop).
yup dat zei ik em ook
aanvulling 
De If....then... statements : er word alleen gekeken of er aan de voorwaarde word voldaan. Zo niet > dan slaat de programma dat wat achter 'then' t/m 'end if' OVER. Voldoet t wel aan de gestelde voorwaarde dan zal dat achter 'then' wel eerst worden uitgevoerd, en gaat dan pas verder met wat eronder staat.
Hoop dat t duidelijk(er) is waarom je progje niet gaat werken zoals gewenst 
dus als ik het goed begrijp moet het dus zo worden:
forever loop
while port_a == 000 loop LR
while port_a == 001 loop RL
while port_a == 010 loop dubbel
while port_a == 011 loop rand1
while port_a == 100 loop rand2
while port_a == 101 loop rand3
while port_a == 110 loop rand4
while port_a == 111 loop rand5
end loopen hoe doe ik dan voor de lampen aan te sturen?
procedure LR is
if pin_a3 == high then port_b = 0b_1000_0000 end if
if pin_a3 == low then port_b = 0b_0100_0000 end if
if pin_a3 == high then port_b = 0b_0010_0000 end if
if pin_a3 == low then port_b = 0b_0001_0000 end if
end procedureDe bedoeling is dat er hier afhankelijk van de snelheid van puls a3 de brandende lamp telkens 1 plaats opschuift:
1) 1000
2) 0100
3) 0010
4) 0001
Wouter van Ooijen
Wouter van Ooijen: VOTI webwinkel, docent HvU (Technische Informatica); C++ on mictrocontrollers blog
Op 10 november 2003 09:28:43 schreef tom v:
dus als ik het goed begrijp moet het dus zo worden:
Nu wacht je totdat de code verandert, je moet toch wachten totdat de puls op a3 verandert?
terrorfeary
elektronica , het is zoals het weer , het word zelden wat je verwacht :) plz cheak out my new site :http://www.terrorfeary.tk
@Wouter:
in de forever loop wordt gekeken naar toestand van a0,a1 en a2. Afhankelijk van deze toestand wordt een bepaalde procedure aangeroepen. In deze procedure ist de bedoeling dat er naar volgende stand wordt gegaan als a3 van toestand verandert. a3 heeft dus niks met de forever loop te maken.
Of bedoel je iet anders?
@terrorfeary : Ja eindelijk eens, begon tijd te worden he 
[Bericht gewijzigd door tom v op ]
terrorfeary
elektronica , het is zoals het weer , het word zelden wat je verwacht :) plz cheak out my new site :http://www.terrorfeary.tk
Op 10 november 2003 10:31:13 schreef tom v:
@terrorfeary : Ja eindelijk eens, begon tijd te worden he
ik heb ook zoiets wille maken maar mijn ssr van velleman werkte niet en heb geen zin om hem op te sturen naar velleman
Wouter van Ooijen
Wouter van Ooijen: VOTI webwinkel, docent HvU (Technische Informatica); C++ on mictrocontrollers blog
Op 10 november 2003 10:31:13 schreef tom v: In deze procedure ist de bedoeling dat er naar volgende stand wordt gegaan als a3 van toestand verandert.
Dan moet je toch wachten ( = while loop) totdat a3 verandert?
terrorfeary
elektronica , het is zoals het weer , het word zelden wat je verwacht :) plz cheak out my new site :http://www.terrorfeary.tk
aaah. ik begint te snappen.
Ik moet dus overal
while a3=high loop .....
while a3=low loop ....
while a3=high loop...
....
Bedoel je dit?
En anders maak ff duidelijk wa je wilt zeggen
Wouter van Ooijen
Wouter van Ooijen: VOTI webwinkel, docent HvU (Technische Informatica); C++ on mictrocontrollers blog
> Bedoel je dit?
Ja
> En anders maak ff duidelijk wa je wilt zeggen
nee, ik geef wat aanwijzingen zodat je het zelf kan uitvinden. Veel beter voor je toekomst 
mja da is weln dan onthoud ge het beter.
ik ga het morge aanpassen en dan wachten tot ik alles binneheb zodat ik kan gaan testen.
Wordt zeker vervolgd.
En als ik ergens ne digi kan uithale volge er pic's
Wouter van Ooijen
Wouter van Ooijen: VOTI webwinkel, docent HvU (Technische Informatica); C++ on mictrocontrollers blog
Op 10 november 2003 19:38:39 schreef tom v:
En als ik ergens ne digi kan uithale volge er pic's
En als ik niet meer reageer is dat omdat ik je niet versta.
Frits Kieftenbelt
Ohm sweet Ohm | www.picbasic.nl
terrorfeary
elektronica , het is zoals het weer , het word zelden wat je verwacht :) plz cheak out my new site :http://www.terrorfeary.tk
Aedolon
Just face it: sometimes nobody envies you. There has to be a bottom and that bottom is probaly you. // http://www.amazon.com/o/registry/VWZ93N4Y6XQT
Op 11 november 2003 22:18:03 schreef terrorfeary:
tom let op je taal jongen!
ach, pubers hé ze willen maar 1 ding
[Bericht gewijzigd door Aedolon op ]
Aedolon
Just face it: sometimes nobody envies you. There has to be a bottom and that bottom is probaly you. // http://www.amazon.com/o/registry/VWZ93N4Y6XQT
Op 11 november 2003 22:32:28 schreef tom v:
puber puber.
jong volwassene he
en 19 jrtjes jong dus
terror(gothic?)feary...
