90 lines
2.0 KiB
NASM
90 lines
2.0 KiB
NASM
|
;
|
||
|
; chenillarEssai3.asm
|
||
|
;
|
||
|
; Created: 19-03-18 13:13:56
|
||
|
; Author : Adrien
|
||
|
;
|
||
|
.dseg
|
||
|
.def rtmp = r16
|
||
|
.def rdec = r17
|
||
|
.def rsens = r18
|
||
|
|
||
|
.cseg
|
||
|
.include "m328pdef.inc"
|
||
|
|
||
|
.org 0x0000
|
||
|
jmp RESET
|
||
|
.org OC0Aaddr
|
||
|
jmp TIM0_COMPA ; Timer0 CompareA
|
||
|
.org OVF0addr
|
||
|
jmp TIM0_OVF
|
||
|
|
||
|
|
||
|
|
||
|
.org 0x0100
|
||
|
|
||
|
RESET:
|
||
|
ldi rtmp, HIGH(RAMEND) ;Charge la valeur haute de l?adresse en fin m?moire RAM
|
||
|
out SPH, rtmp ;Positionne le pointeur de pile haut sur cette adresse
|
||
|
ldi rtmp, LOW(RAMEND) ;Charge la valeur basse de l?adresse en fin m?moire RAM
|
||
|
out SPL, rtmp ;Positionne le pointeur de pile bas sur cette adresse
|
||
|
; Replace with your application code
|
||
|
ser rtmp ;Port en sortie (les bits du port sont mis ? 1, soit en sortie)
|
||
|
out DDRD, rtmp ;Ecriture sur le
|
||
|
clr rtmp ;Port en bas (les bits du port sont mis ? 0, Led ?teinte)
|
||
|
ldi rtmp, 0x01
|
||
|
out PORTD, rtmp ;PINB1 Mis ? 1
|
||
|
clr rsens
|
||
|
;_____________________________________________________________________________
|
||
|
;Setup Timer0
|
||
|
;_____________________________________________________________________________
|
||
|
CLR rtmp
|
||
|
OUT TCCR0A, rtmp ;Normal port op
|
||
|
LDI rtmp, 0x01
|
||
|
OUT TCCR0B, rtmp ; No Force, No wave, Clk from precal/1024, 7.8125Khz, 128?s
|
||
|
ldi rtmp, 0x02
|
||
|
sts TIMSK0, rtmp ; OCR0A Interrupt Enable
|
||
|
CLR rtmp
|
||
|
OUT TCNT0, rtmp ;
|
||
|
LDI rtmp, 0xff
|
||
|
OUT OCR0A, rtmp ; 256*128?s = 16ms
|
||
|
LDI rdec, 0xFF
|
||
|
;_____________________________________________________________________________
|
||
|
;Setup PWM Timer0
|
||
|
;_____________________________________________________________________________
|
||
|
|
||
|
SEI
|
||
|
|
||
|
|
||
|
start:
|
||
|
nop
|
||
|
nop
|
||
|
nop
|
||
|
jmp PC-2
|
||
|
|
||
|
|
||
|
TIM0_COMPA:
|
||
|
dec rdec
|
||
|
BRNE PC+7
|
||
|
in rtmp, PORTD
|
||
|
lsl rtmp ;Shift left
|
||
|
BRCC PC+2; Si le cary est ? 0 rtmp est dif de 0x00 Si carry est ? 1, rtmp = 0x00 donc on le met ? 0x01
|
||
|
ldi rtmp, 0x01
|
||
|
out PORTD, rtmp
|
||
|
ldi r18, 0xff
|
||
|
ldi rtmp, 0x00
|
||
|
out TCNT0, rtmp
|
||
|
reti ;Fin de l?interruption
|
||
|
|
||
|
TIM0_OVF:
|
||
|
dec rdec
|
||
|
BRNE PC+1
|
||
|
|
||
|
|
||
|
|
||
|
in rtmp, PORTD
|
||
|
lsl rtmp ;Shift left
|
||
|
BRCC PC+2; Si le cary est ? 0 rtmp est dif de 0x00 Si carry est ? 1, rtmp = 0x00 donc on le met ? 0x01
|
||
|
ldi rtmp, 0x01
|
||
|
out PORTD, rtmp
|
||
|
reti
|