terrorfeary
elektronica , het is zoals het weer , het word zelden wat je verwacht :) plz cheak out my new site :http://www.terrorfeary.tk
hoi
hoe kan ik deze code verkleinen en hoe zorg ik dat iets maar 5 x loopt ?
de code is de volgende :
include 16c84_10
include jlib
port_a_direction = all_output
port_b_direction = all_output
forever loop
if pin_a2 == high then iwan1 end if
if pin_a3 == high then iwan2 end if
if pin_a4 == high then iwan3 end if
end loop
procedure iwan1
pin_a1 = low
pin_b0 = low
delay_1ms(10)
pin_b0 = high
pin_b1 = low
delay_1ms(10)
pin_b1 = high
pin_b2 = low
delay_1ms(10)
pin_b2 = high
pin_b3 = low
delay_1ms(10)
pin_b3 = high
pin_b4 = low
delay_1ms(10)
pin_b4 = high
pin_b5 = low
delay_1ms(10)
pin_b5 = high
pin_b6 = low
delay_1ms(10)
pin_b6 = high
pin_b7 = low
delay_1ms(10)
pin_b7 = high
end procedure
procedure iwan2
pin_a0 = low
pin_b7 = low
delay_1ms(10)
pin_b7 = high
pin_b6 = low
delay_1ms(10)
pin_b6 = high
pin_b5 = low
delay_1ms(10)
pin_b5 = high
pin_b4 = low
delay_1ms(10)
pin_b4 = high
pin_b3 = low
delay_1ms(10)
pin_b3 = high
pin_b2 = low
delay_1ms(10)
pin_b2 = high
pin_b1 = low
delay_1ms(10)
pin_b1 = high
pin_b0 = low
delay_1ms(10)
pin_b0 = high
end procedure
procedure iwan3
pin_b0 = low
pin_b1 = low
pin_b2 = low
pin_b3 = low
pin_b4 = low
pin_b5 = low
pin_b6 = low
pin_b7 = low
delay_10ms(2)
pin_b0 = high
pin_b1 = high
pin_b2 = high
pin_b3 = high
pin_b4 = high
pin_b5 = high
pin_b6 = high
pin_b7 = high
end procedure
tnx!!
groetjes , iwan
Prutsertje
bloep....
Bekijk in de JAL doc de instructie: 'For n Loop' eens waarbij n staat voor het aantal keren dat de routine uitgevoerd moet worden.
/edit. Ik had jouw code iets te vluchtig gelezen, dus het is maar een half antwoord.
[Bericht gewijzigd door Prutsertje op ]
procedure iwan3
pin_b0 = low
pin_b1 = low
pin_b2 = low
pin_b3 = low
pin_b4 = low
pin_b5 = low
pin_b6 = low
pin_b7 = low
delay_10ms(2)
pin_b0 = high
pin_b1 = high
pin_b2 = high
pin_b3 = high
pin_b4 = high
pin_b5 = high
pin_b6 = high
pin_b7 = high
end procedure
Wat bovenstaande code betreft: je kunt de poorten in 1 keer hoog of laag maken ipv pin voor pin.
procedure iwan3
port_a = 0x00
delay_10ms(2)
port_b = 0xFF
end procedure
Wouter van Ooijen
Wouter van Ooijen: VOTI webwinkel, docent HvU (Technische Informatica); C++ on mictrocontrollers blog
> hoe kan ik deze code verkleinen
ik zie de structuur niet in wat je allemaal doet op poort_b? misschien kan je vakere meerdere bits in 1 keer zetten. Misschie kan je de bits zo over a en b verdelen dat je altijd maar in 1 poort hoeft te veranderen. Je doet bijna altijd een verandering avn poort_b en dan wat wachten, dus dat zou ik combineren in 1 procedure.
verder zou ik al die iwans voor de main loop plaatsen, zoals het nu staat compileert het niet.
> hoe zorg ik dat iets maar 5 x loopt ?
ik snap je vraag niet
Evil Aedolon
ELEKTRONICA WIKI // Wiskunde is "hip" // http://www.physics2005.org/ 2005 Year of physics! // "In science there is only physics; all the rest is stamp collecting."
als je iets maar 5 keer wilt doen lopen moet je de for next loop gebruiken
for x=5 x++ (ken jal syntax hiervan niet zoek het op
dan je programma
next
dan gaat hij bij iedere keer dat x nog niet gelijk zijn aan 5 1tje bijtellen en prog uitvoeren tot x=5
edit: moet je wel ergens zetten dat x=0 is eerst
terrorfeary
elektronica , het is zoals het weer , het word zelden wat je verwacht :) plz cheak out my new site :http://www.terrorfeary.tk
is der niets mogelijk van bv
0b_0000_0001
delay_1s(1)
zoiets op die aard dat ik zeg welke uitgangen hoog en laag zijn maar in 1 regeltje dan maar
Thomas
Hello, I'm a signature virus. Please copy me into Hello, I'm a signature virus scanner. I succesfully deleted your signature virus.
Op 7 maart 2004 11:44:45 schreef terrorfeary:
is der niets mogelijk van bv
0b_0000_0001
delay_1s(1)zoiets op die aard dat ik zeg welke uitgangen hoog en laag zijn maar in 1 regeltje dan maar
Inderdaad. Als bijvoorbeeld pin b6 en b0 hoog moeten zijn, gebruik je:
port_b = 0b_0100_0001
|||| ||||
|||| ||||
bit 7654 3210
terrorfeary
elektronica , het is zoals het weer , het word zelden wat je verwacht :) plz cheak out my new site :http://www.terrorfeary.tk
terrorfeary
elektronica , het is zoals het weer , het word zelden wat je verwacht :) plz cheak out my new site :http://www.terrorfeary.tk
pic microcontroler project 1 : looplicht
include 16c84_10
include jlib
port_a_direction = all_output
port_b_direction = all_output
forever loop
if pin_a2 == high then iwan1 end if
if pin_a3 == high then iwan2 end if
if pin_a4 == high then iwan3 end if
end loop
procedure iwan1
for 5 loop
port_b = 0b_0000_0001
delay_1ms(2)
port_b = 0b_0000_0010
delay_1ms(2)
port_b = 0b_0000_0100
delay_1ms(2)
port_b = 0b_0000_1000
delay_1ms(2)
port_b = 0b_0001_0000
delay_1ms(2)
port_b = 0b_0010_0000
delay_1ms(2)
port_b = 0b_0100_0000
delay_1ms(2)
port_b = 0b_1000_0000
delay_1ms(2)
end loop
end procedure
procedure iwan2
for 5 loop
port_b = 0b_1000_0000
delay_1ms(2)
port_b = 0b_0100_0000
delay_1ms(2)
port_b = 0b_0010_0000
delay_1ms(2)
port_b = 0b_0001_0000
delay_1ms(2)
port_b = 0b_0000_1000
delay_1ms(2)
port_b = 0b_0000_0100
delay_1ms(2)
port_b = 0b_0000_0010
delay_1ms(2)
port_b = 0b_0000_0001
delay_1ms(2)
end loop
end procedure
procedure iwan3
for 5 loop
port_b = 0b_1111_1111
delay_1ms(2)
port_b = 0b_0000_0000
delay_1ms(2)
end loop
end procedure
zo zou het dus ook moete werken ? het hele programma
Thomas
Hello, I'm a signature virus. Please copy me into Hello, I'm a signature virus scanner. I succesfully deleted your signature virus.
Inderdaad, maar de delay zal wel wat groter moeten. Met een delay van 2 ms zal dat looplicht bijna niet zichtbaar zijn.
Op 7 maart 2004 16:02:11 schreef terrorfeary:
pic microcontroler project 1 : looplicht include 16c84_10 include jlib port_a_direction = all_output port_b_direction = all_output forever loop if pin_a2 == high then iwan1 end if if pin_a3 == high then iwan2 end if if pin_a4 == high then iwan3 end if end loop procedure iwan1 for 5 loop port_b = 0b_0000_0001 delay_1ms(2) port_b = 0b_0000_0010 delay_1ms(2) port_b = 0b_0000_0100 delay_1ms(2) port_b = 0b_0000_1000 delay_1ms(2) port_b = 0b_0001_0000 delay_1ms(2) port_b = 0b_0010_0000 delay_1ms(2) port_b = 0b_0100_0000 delay_1ms(2) port_b = 0b_1000_0000 delay_1ms(2) end loop end procedure procedure iwan2 for 5 loop port_b = 0b_1000_0000 delay_1ms(2) port_b = 0b_0100_0000 delay_1ms(2) port_b = 0b_0010_0000 delay_1ms(2) port_b = 0b_0001_0000 delay_1ms(2) port_b = 0b_0000_1000 delay_1ms(2) port_b = 0b_0000_0100 delay_1ms(2) port_b = 0b_0000_0010 delay_1ms(2) port_b = 0b_0000_0001 delay_1ms(2) end loop end procedure procedure iwan3 for 5 loop port_b = 0b_1111_1111 delay_1ms(2) port_b = 0b_0000_0000 delay_1ms(2) end loop end procedurezo zou het dus ook moete werken ? het hele programma
Wat zegt Wouter nu?
verder zou ik al die iwans voor de main loop plaatsen, zoals het nu staat compileert het niet.

terrorfeary
elektronica , het is zoals het weer , het word zelden wat je verwacht :) plz cheak out my new site :http://www.terrorfeary.tk
Wouter van Ooijen
Wouter van Ooijen: VOTI webwinkel, docent HvU (Technische Informatica); C++ on mictrocontrollers blog
en wat zei wouter nog meer?
Op 7 maart 2004 07:36:01 schreef Wouter van Ooijen:
> hoe kan ik deze code verkleinenJe doet bijna altijd een verandering avn poort_b en dan wat wachten, dus dat zou ik combineren in 1 procedure.
terrorfeary
elektronica , het is zoals het weer , het word zelden wat je verwacht :) plz cheak out my new site :http://www.terrorfeary.tk
http://members.lycos.nl/verlorenzielen/PIC%20schema.JPG
hier staat het schema dat ik aan deze code wil koppelen , kunnen jullie me vertellen als het zal werken of waar de fouten zitten ?
ps de diode's op de tekening moet een diode brug worden maar die stond niet in de componeten bib van eagle
de code :
pic microcontroler project 1 : looplicht
include 16c84_10
include jlib
port_a_direction = all_output
port_b_direction = all_output
procedure iwan1
for 5 loop
port_b = 0b_0000_0001
delay_1ms(2)
port_b = 0b_0000_0010
delay_1ms(2)
port_b = 0b_0000_0100
delay_1ms(2)
port_b = 0b_0000_1000
delay_1ms(2)
port_b = 0b_0001_0000
delay_1ms(2)
port_b = 0b_0010_0000
delay_1ms(2)
port_b = 0b_0100_0000
delay_1ms(2)
port_b = 0b_1000_0000
delay_1ms(2)
end loop
end procedure
procedure iwan2
for 5 loop
port_b = 0b_1000_0000
delay_1ms(2)
port_b = 0b_0100_0000
delay_1ms(2)
port_b = 0b_0010_0000
delay_1ms(2)
port_b = 0b_0001_0000
delay_1ms(2)
port_b = 0b_0000_1000
delay_1ms(2)
port_b = 0b_0000_0100
delay_1ms(2)
port_b = 0b_0000_0010
delay_1ms(2)
port_b = 0b_0000_0001
delay_1ms(2)
end loop
end procedure
procedure iwan3
for 5 loop
port_b = 0b_1111_1111
delay_1ms(2)
port_b = 0b_0000_0000
delay_1ms(2)
end loop
end procedure
forever loop
if pin_a2 == high then iwan1 end if
if pin_a3 == high then iwan2 end if
if pin_a4 == high then iwan3 end if
end loop
TNX iig
groetjes , iwan
