; ; 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