Ik heb een microproccor de 16F876A en heb hierop een 4MHz kristal aangesloten.
Nu maak ik één poort hoog op (poortA) op het velleman kitje VM111.
Maar nu wil ik de tijd zelf bepalen, en volgens mijn berekeningen moet dit zijn 4000 000 000 /4 = 1000 000 000
oftwel 1/1000 000 000 is 1ns per instructie.
Maar nu wil ik kijken of it klopt op de scoop, maar krijg er 12,5 us uit ...
De code
porta EQU 05h
portb EQU 06h
portc EQU 07h
teller EQU 40h
teller2 EQU 41h
teller3 EQU 42h
instelporta EQU 85h
instelportb EQU 86h
instelportc EQU 87h
ORG 00h ;beginadres kiezen
BSF 03,5 ;kies bank 1
CLRF instelporta ;
BCF 03,5 ;kies bank 0
CALL knipperkeer
led1 MOVLW 01h MOVWF porta
CALL tijdjewachten
MOVLW 00h
MOVWF porta ; zet alle leds weer uit dus LED0
CALL tijdjewachten
DECFSZ teller3, 1
GOTO led1
CALL knipperkeer
led2 MOVLW 02h
MOVWF porta ;zet 1 ledje aan
CALL tijdjewachten
MOVLW 00h
MOVWF porta
CALL tijdjewachten
DECFSZ teller3, 1
GOTO led2
CALL knipperkeer
GOTO led1
;---------SUB ROUTINES------------------
knipperkeer MOVLW 05h
MOVWF teller3
RETURN
tijdjewachten
MOVLW 002h
MOVWF teller2
verder MOVLW 002h
MOVWF teller
opnieuw DECFSZ teller, 1
GOTO opnieuw
DECFSZ teller2, 1
GOTO verder
RETURN
ps is een stukje van het politieproject.... (ben net weer begonnen dus moet het weer even opfrissen)
Bij voorbaat dank,
Erik
In order to succeed you must fail, so that you know what not to do the next time.
ik ben geen ster in asm maar de fout die je in je berekning al maakt is dat je 4mhz als 4 miljard ziet, terwijl het 4 miljoen is. dus ipv 1 miljard instructies is het 1 miljoen instructies per seconde.