Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- ;**********************************************************************
- ; *
- ;**********************************************************************
- ; *
- ; Filnavn: jannichpetersen.asm *
- ; Dato: 09-11-2016 *
- ; *
- ; *
- ; Udvikler: JAPE *
- ; Firma: OTG *
- ; *
- ; *
- ;**********************************************************************
- ; *
- ; Nødvendige filer: P16F684.INC *
- ; *
- ;**********************************************************************
- ; *
- ; Bemærkninger: Ingen lige nu... *
- ; *
- ;**********************************************************************
- list p=16f684 ; list directive to define processor
- #include <P16F684.inc> ; processor specific variable definitions
- __CONFIG _CP_OFF & _CPD_OFF & _BOD_OFF & _PWRTE_ON & _WDT_OFF & _INTRC_OSC_NOCLKOUT & _MCLRE_ON & _FCMEN_OFF & _IESO_OFF
- ;********************************************************************
- ;BaseX EQU 0x23
- ;BaseY EQU 0x24
- ;Treshhold EQU 0x25
- Rounds EQU 0x26
- Round1 EQU 0x27 ;Bit 0 er 1 = Hurtig
- ;**********************************************************************
- ORG 0x000 ; processor reset vector
- goto Opsætning ; go to beginning of program
- INT_VECT CODE 0x0004
- GOTO ISR
- MAIN_PROG CODE
- ;LIBRARYRYRYR
- #Include "delay.lib"
- ;**********************************************************************
- Opsætning
- ; Bank 0
- MOVLW b'00000111';
- MOVWF T2CON ; Start timer 2 (Bank 0, 12h)
- MOVLW b'00000111';
- MOVWF CMCON0 ; Slukker for CM0,1,2 (Modsat) (Se Bank 0, 19h)
- MOVLW b'00001100';
- MOVWF CCP1CON ; PWM Controller (Bank 0, 15h)
- BSF STATUS,RP0 ; Skifter til BANK 1
- ; Bank 1
- BCF TRISC,5 ; Sætter bit 5 i Port C til output
- MOVLW b'11111111';
- MOVWF PR2 ; Tænder timer 2 (Bank 1, 92h)
- ; Sæt basisværdi for accelerometeret
- ; CALL delay1000 ; Efter 1 sekund
- ; CALL ADcheckX ;Find x-værdi for accelerometeret
- ; MOVWF BaseX
- ; CALL ADcheckY
- ; MOVWF BaseY ;Find x-værdi for accelerometeret
- ; Opsætning af interrupt og runde-tælling
- MOVLW d'7'
- MOVWF Rounds
- BSF STATUS,RP0 ; Skifter til BANK 1
- ; Opsætning af lysøje
- BSF TRISA,RA2 ;Sæt RA2 som input
- BCF ANSEL,ANS2 ;Sluk for analog
- BCF TRISC,RC2 ;Sæt R2 som output BREMSELYS
- BCF TRISC,RC1 ;Sæt R2 som output BLINKLYS
- BCF TRISC,RC0 ;Sæt R2 som output BLINKLYS
- BCF STATUS,RP0 ; Skifter til BANK 0
- MOVLW b'10010000'
- MOVWF INTCON ; Global interrupt enabled, RB Change interrupt enabled
- BCF Round1,0
- goto main
- ;**************************************************************************
- ISR
- BCF INTCON,GIE ;Disable all interrupts inside interrupt service routine
- DECFSZ Rounds
- GOTO skip
- GOTO main
- skip
- BCF INTCON,INTF ;Clear interruptflag
- BSF INTCON,GIE ;Enable all interrupts
- GOTO start
- ;***********************************************************************
- main
- MOVLW d'0'
- MOVWF CCPR1L
- CALL delay1000
- MOVLW d'6'
- MOVWF Rounds
- BCF INTCON,INTF ;Clear interruptflag
- BSF INTCON,GIE ;Enable all interrupts
- GOTO main
- start
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement