Napisać program który wykorzystuje licznik 0 do pracy:

  • W trybie normalnym bez i z preskalerem /8 Monitoruje zawartość rejestru pokazującego bieżący stan licznika na linijce diodowej Po przepełnieniu licznika na linijce diodowej wyświetla numer przepełnienia

  • W trybie CTC (Clear Timer on Compare Match) Monitoruje zawartość rejestru pokazującego bieżący stan licznika na linijce diodowej Po przepełnieniu licznika na linijce diodowej wyświetla numer przepełnienia

Muszę przerobić następujący kod a mam małe doświadczenie z asemblerem, kod działa prawidłowo

 .include "m32def.inc"
 
.def temp = r16
.def temp2 = r18
.def zm = r25
.def leds = r17
.def con = r20
.org 0x0000
        rjmp    main                  
.org 0x0016
        rjmp    timer0_overflow       
 
main:

        ldi     temp, HIGH(RAMEND)
        out     SPH, temp
        ldi     temp, LOW(RAMEND)     
        out     SPL, temp
	ldi		temp,0b11111111
	ldi 	con,0b00000000      
	ldi 	zm ,0b00001000  
	out		DDRA,temp
 
        out     DDRB, temp
 
        ldi     leds, 0xFF
      
	//Preskaler /8 tryb normalny
	//ldi     temp, (1<<CS01)  
        //out     TCCR0, temp


	//CTC
	out 	OCR0, zm
	ldi		temp2,0b00001010
        out     TCCR0, temp2

 
        //ldi     temp, (1<<TOIE0)      
        out     TIMSK, temp
 
        sei
 
loop:   
		in 		leds, TCNT0
		out 	PORTA, leds
		rjmp    loop
 
timer0_overflow:  
		inc     con                   
        out     PORTA, con
        reti