Hallo allemaal,

Ik ben druk bezig met mijn eerste PIC project en heb even een vraagje over wacht routine. Ik heb al diverse sites gevonden met uitleg maar het kwartje wil maar niet vallen.

Voorbeeld:

delay movlw .255

movw cntr1

delay1 decfsz cntr1, f

goto delay1

return

Volgens de uitleg op de site zouden dit 770 stapjes moeten zijn, maar ik kom daar niet op... ik zie het volgende (kennelijk fout)

delay movlw .255 ; 1 cycle

movw cntr1 ; 1 cycle

delay1 decfsz cntr1, f ;255 cycle

goto delay1 ;255 cycle

return ; 1 cycle

In totaal 513 stapjes

Kan iemand me vertellen hoe het wel zit?

Alvast bedankt

De "goto"-instructie gebruikt, geloof ik, 2 cycles. Dus 3*255 plus een beetje.

Bedankt voor je reachtie Richard.

Ik heb nog even verder gezocht en het lijkt er inderdaad op dat een sprong instructie uit meer dan 1 cycle bestaat.

Kan iemand dat kort bevestigen?

dat staat gewoon in de datasheet van je PIC

een goto neem 2 cycles

edit:

zie bijv. pagina 108 van: http://ww1.microchip.com/downloads/en/DeviceDoc/40300C.pdf

[Bericht gewijzigd door willem. op ]

Willem bedankt voor je reactie, ik heb het gezien.

Ben echt een newbee dus moet het allemaal nog even doorkrijgen.

Thanx

Als je MPSIM gebruikt in de Microchip IDE dan kun je dit tot op de exacte cycle timen/controleren...

Arco, het is me wel gelukt te animeren en dan de stopwatch mee te laten lopen en ingangen te hoog en laag te maken met de control interface, maar dan is het evengoed nog lastig om te checken wanneer hij begonnen is.

Bedoel je dit? of is er iets handigers zoals je kunt instellen dat de regel nummers zichtbaar worden aan de linkerkant maar dan met cycles?

Kun je je listing niet bekijken? kun je daar niets uit opmaken?

De combinatie van breekpunten en de stopwatch is prima om op de cycle nauwkeurig uit te tellen. Bij het "begin" breakpunt reset je de stopwatch en bij het "einde" breakpunt weet je precies hoe lang het duurde.
Aan een listing heb je natuurlijk weinig want dan moet je zelf uittellen in loops hoelang het wordt en een btfss en btfsc instructie kan 1 of 2 cycles duren.

JoWi bedankt zo gaat het inderdaad prima :)

Nog wel even een vraagje, mijn klok staat ingesteld op 10 Mhz intern heeft de uP 4 kloktikken nodig. Dus wordt die klok door 4 gedeeld en kom ik op 0.25 uS per cycle

Mijn stopwatch geeft echter 0.4 uS per cycle aan?

.
edit: had 0,2 uS neergezet ipv 0,4 uS

Op 19 januari 2007 16:44:57 schreef Systemlord Max:
JoWi bedankt zo gaat het inderdaad prima :)

Nog wel even een vraagje, mijn klok staat ingesteld op 10 Mhz intern heeft de uP 4 kloktikken nodig. Dus wordt die klok door 4 gedeeld en kom ik op 0.25 uS per cycle

Mijn stopwatch geeft echter 0.2 uS per cycle aan?.

Kan het 0,4us zijn per cycle??

Natuurlijk 0,4 uS was vergeten de frequentie om te zetten naar de tijd.

[Bericht gewijzigd door Systemlord Max op ]