M
mickbristol
Guest
hello, i am on PIC.Snažím sa prepínať LED na porte D pomocou timer0 a prescaler dosiahnuť 1 sekundy.
Prosím, opravte ma, či im zle.
i použiť krystal 8MHz.
takže výučba cyklu je 1 / (8000000 / 4) = 500ns,
pomocou prescaler na 256.môj cyklus stáva 500ns x 256 = 128us
Budem robiť 235 cyklov na test z INTCON, 2
a 235 x 2 na nasledujúci Choď
Budem robiť LOOP 11 krát a plus niekoľko dodatočné pokyny Mal som
(235x2) (235) 10 = 715
715x11 = 7865 slučky cyklov
7865x128us = 1,00672
sekúnd
, Ale na mojej dosky .. je oveľa rýchlejšia!Řekl bych, 0.5 sec
môže ktokoľvek opraviť Kde je moja chyba?
mockrát děkuji
Tu je kód
list p = 16F877A
#
Include P16F877A.inc
__CONFIG _CP_OFF & _DEBUG_OFF & _WRT_OFF & _CPD_OFF & _LVP_OFF & _PWRTE_OFF & _BODEN_OFF & _WDT_OFF & _HS_OSC
org 0x0000
LOOP EQU 0x20
goto hlavných
hlavný
banksel PORTD
clrf PORTD; jasné portu D
banksel TRISD; banky 1
movlw b'00000000 '; zaťaženie 0000 0000
movwf TRISD; viedla portD výstup
BCF OPTION_REG, 5; vnútorné hodiny
BCF OPTION_REG, 3; prescale k TMR0
BSF OPTION_REG, 0; prescaler na 1:256
BSF OPTION_REG, 1
BSF OPTION_REG, 2
L1
banksel LOOP
movlw d'11 '
movwf LOOP
L2
banksel TMR0; bank0
movlw d'20 '; nabíjačka 0001 0100
movwf TMR0; v TMR0
BCF INTCON, 2; jasné vlajky
L3 btfss INTCON, 2; test vlajky timer0
goto L3
decfsz LOOP, 1. decembra do
1. LOOP a preskočiť nasledujúce instru keď LOOP = 0
goto L2
comfy PORTD; dopĺňať PORTD
goto L1; ísť do LOOP
koniec
Prosím, opravte ma, či im zle.
i použiť krystal 8MHz.
takže výučba cyklu je 1 / (8000000 / 4) = 500ns,
pomocou prescaler na 256.môj cyklus stáva 500ns x 256 = 128us
Budem robiť 235 cyklov na test z INTCON, 2
a 235 x 2 na nasledujúci Choď
Budem robiť LOOP 11 krát a plus niekoľko dodatočné pokyny Mal som
(235x2) (235) 10 = 715
715x11 = 7865 slučky cyklov
7865x128us = 1,00672
sekúnd
, Ale na mojej dosky .. je oveľa rýchlejšia!Řekl bych, 0.5 sec
môže ktokoľvek opraviť Kde je moja chyba?
mockrát děkuji
Tu je kód
list p = 16F877A
#
Include P16F877A.inc
__CONFIG _CP_OFF & _DEBUG_OFF & _WRT_OFF & _CPD_OFF & _LVP_OFF & _PWRTE_OFF & _BODEN_OFF & _WDT_OFF & _HS_OSC
org 0x0000
LOOP EQU 0x20
goto hlavných
hlavný
banksel PORTD
clrf PORTD; jasné portu D
banksel TRISD; banky 1
movlw b'00000000 '; zaťaženie 0000 0000
movwf TRISD; viedla portD výstup
BCF OPTION_REG, 5; vnútorné hodiny
BCF OPTION_REG, 3; prescale k TMR0
BSF OPTION_REG, 0; prescaler na 1:256
BSF OPTION_REG, 1
BSF OPTION_REG, 2
L1
banksel LOOP
movlw d'11 '
movwf LOOP
L2
banksel TMR0; bank0
movlw d'20 '; nabíjačka 0001 0100
movwf TMR0; v TMR0
BCF INTCON, 2; jasné vlajky
L3 btfss INTCON, 2; test vlajky timer0
goto L3
decfsz LOOP, 1. decembra do
1. LOOP a preskočiť nasledujúce instru keď LOOP = 0
goto L2
comfy PORTD; dopĺňať PORTD
goto L1; ísť do LOOP
koniec