codepad
[
create a new paste
]
login
|
about
Language:
C
C++
D
Haskell
Lua
OCaml
PHP
Perl
Plain Text
Python
Ruby
Scheme
Tcl
#INCLUDE <p18f45k20.inc> CONFIG FOSC = INTIO67 CONFIG WDTEN = OFF, LVP = OFF, MCLRE = OFF CBLOCK 000H led_count: 1 switch_delay: 1 table_num: 1 CNT1: 1 CNT2: 1 count125: 1 ENDC ORG 0 GOTO main ORG 08H GOTO interrupt interrupt BTFSS INTCON,INT0IF RETFIE FAST time_loop RCALL loop125 NOP DECFSZ switch_delay BRA time_loop BCF INTCON,INT0IF BTFSC PORTB,RB0 RETFIE FAST RCALL table NOP RETFIE FAST ;************************************************************** ;************************************************************** main CLRF led_count MOVLW 01H MOVWF switch_delay MOVWF table_num MOVLW 125 MOVWF count125 ;init I/O CLRF TRISD BSF TRISE,TRISE0 BCF INTCON2,RBPU BSF WPUB,WPUB0 ;set initial clock speed MOVF table_num,W RCALL table NOP ;init switch and turn on interrupts BCF INTCON2,INTEDG0 BCF INTCON,INT0IF BSF INTCON,INT0IE BCF RCON,IPEN BSF INTCON,PEIE BSF INTCON,GIE loop INCF led_count,F MOVFF led_count,LATD RCALL TIM10M NOP BRA loop ;******************************************************************* ;******************************************************************* loop125 DECFSZ count125 BRA loop125 MOVLW 125 MOVWF count125 RETURN ; 100usec????????? TIM100 MOVLW 0C7H ;??199?? MOVWF CNT1 ;??????? LOOP1 NOP ;???NOP NOP ;(2+3)*199-1=994 cycle DECFSZ CNT1,F ;?????? BRA LOOP1 ;???? RETURN ;2+994+2=998 cycle ;********* ; 10msec????????? TIM10M MOVLW 064H ;??100?? MOVWF CNT2 ;??????? LOOP2 CALL TIM100 ;100usec???? DECFSZ CNT2,F ;?????? BRA LOOP2 ;???? RETURN ;?????? table ADDWF table_num,W ADDWF PCL,F NOP GOTO C_250kHz GOTO C_4MHz GOTO C_64MHz C_250kHz MOVLW 10H MOVWF OSCCON BCF OSCTUNE,PLLEN MOVLW 02H MOVWF table_num MOVLW 01H MOVWF switch_delay RETURN C_4MHz MOVLW 50H MOVWF OSCCON BCF OSCTUNE,PLLEN MOVLW 03H MOVWF table_num MOVLW 16H MOVWF switch_delay RETURN C_64MHz MOVLW 70H MOVWF OSCCON BSF OSCTUNE,PLLEN MOVLW 01H MOVWF table_num MOVLW 255 MOVWF switch_delay RETURN END
Private
[
?
]
Run code
Submit