Cos'è ElectroYou | Login Iscriviti

ElectroYou - la comunità dei professionisti del mondo elettrico

Applicazione Timer/counter1 ATmega8535

Raccolta di codici sorgenti

Moderatore: Foto UtentePaolino

0
voti

[1] Applicazione Timer/counter1 ATmega8535

Messaggioda Foto UtenteAlex8010 » 8 lug 2014, 18:20

Salve a tutti e complimenti per il forum. Sto andando a svolgere il mio primo progetto con l'ATmega8535 linguaggio assembly avr,ma purtroppo ho un problema ad eseguire un conteggio con il micro,spero vivamente che mi possiate dare una mano. Cerco di sintetizzare al meglio il problema, devo andare a contare il tempo per cui un comparatore passa dallo stato logico alto a basso, cioè quando Vin>Vref. Il valore del conteggio varierà
in base a quanto piu' rapida è la tensione Vin ad essere maggiore di Vref.Per poter avviare dei conteggi consecutivi ho inserito un bottone esterno che permetti di resettare il conteggio e che per obblighi circuitali azioni un relè attivando un circuito. Quando accendo il circuito il conteggio è esatto, quando vado a fare nuovi conteggi con il bottone il conteggio risulterà sempre maggiore non riuscendo piu' a diminuire anche nel caso in cui la Vin risulta maggiore di Vref in un tempo rapidissimo. Volevo chiedervi se magari c'è qualche errore nel codice che ho sccritto vi elenco la parte riguardante il timer/counter1:

Codice: Seleziona tutto
Initcont:
ldi   temp, 0b00000100
out TCCR1A,all0
out   TCCR1B, temp ;T/C0 counts at CK/256

ResetCont:
sbi PortC,3 // attiva relè
rcall Delay8ms //Operation Time Relè 8ms


ldi PosTime,0
ldi PosAperture,0
out TCNT1L,all0
out TCNT1H,all0
rjmp Confronto

Confronto:
SBIC ACSR, ACO   ; Skip next instruction if ACO = 0
rjmp Confronto
rjmp LeggiValore


LeggiValore:

;LEGGI VALORE T/C1
in cont1,TCNT1L
in cont2,TCNT1H

;Parte inerente al bottone

NuovaLettura:
in R16,PinD
SBIC PIND,4
rjmp NuovaLettura
rjmp ButtonC3

ButtonC3:
cbi PortC,3 //disattiva relè
rcall Delay5ms//Release Time Relè 5ms
rjmp Reset
Avatar utente
Foto UtenteAlex8010
0 2
 
Messaggi: 10
Iscritto il: 8 lug 2014, 17:05

Torna a Firmware e programmazione

Chi c’è in linea

Visitano il forum: Nessuno e 8 ospiti