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
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
Arco
Special Member
Arco - "Simplicity is a prerequisite for reliability" - hard-, firm-, en software ontwikkeling: www.arcovox.com
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?
Monster_Henry
My brain's all broken, but I'm feelin' alright, I feel like I'm chokin', but I'm feelin' alright, I'm goin' down fast, but I'm feelin alright, I'm not gonna last,but I'm feelin ALRIGHT! Oh Henry
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
picsels
Volgend project: 7-seg gaming displays; dan dec-1982 labvoeding afmaken, dan funcgen met ad9833 afmaken, dan...
Op 19 januari 2007 16:44:57 schreef Systemlord Max:
JoWi bedankt zo gaat het inderdaad primaNog 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 ]