eeprom Inserito: 2 febbraio 2006 Segnala Share Inserito: 2 febbraio 2006 Ciao ragazzi,ho un quesito posto da un mio professore di assembler per AVR che non riesco a risolvere, in pratica mi è stato chiesto di misurare i cicli di clock che impiega una comunicazione con la seriale tramite microcontroller AT90S2313. Allora mi son detto nulla di più semplice, allora quando do il via alla seriale per trasmettermi il byte attivo il contatore e poi quando la seriale mi dice che ha finito io lo spengo il contatore e gli faccio sputare il valore nella seriale. Il problema in parte è stato risolto, nel senso che sono riuscito a fare questo ma il mio professore mi ha chiesto di ottimizzare il codice, perchè dice che non è preciso. Noi stiamo studiano il "Timig Analysis" e la precisione è tutto. Alego di seguito i vari pezzi di code che fanno questo:Setto_ModeCounter: ldi r17, 0x82 ; 10xx 0x0x: enb Timer1 out TIMSK, r17 ldi r17, 0x00 out TCCR1A, r17 ldi r17, 0x00 out TCCR1B, r17 rjmp insLoopSetto_StartCounter: ldi r17, 0x00 ; / Stop out TCCR1B, r17 ; | and out TCNT1H, r17 ; | clear out TCNT1L, r17 ; \ Timer1 ldi r17, 0x01 ; / Restart out TCCR1B, r17 ; \ Timer 1 clr r12 ; / Restart rjmp insLoopSetto_EndCount: ldi r17, 0x00 ; / Stop out TCCR1B, r17 ; \ Timer1 rjmp insLoopGetTimer: ldi YL, 0x60 clr r15 in r25, TCNT1L st Y+, r25 inc r15 in r25, TCNT1H st Y+, r25 inc r15 mov r25, r12 st Y+, r25 inc r15 rjmp MainTRxRoutineIo non so più dove mettere le mani, come posso fare a far contate proprio in cicli di clock l'AVR senza troppe istruzioni? dice che le istruzioni alterano il conteggio cosa che invece non deve verificarsi.Sapreste consigliarmi un codice che faccio quello che ho postato sopra? cioè initializza il counter fa lo start e lo stop poi quella che li sputa fuori posso utilizzzare anche la mia!Vi ringrazio a tutti anticipatamente per l'aiuto che potete darmi ma veramente io certe cose non le capisco.Ciauz Link al commento Condividi su altri siti More sharing options...
Messaggi consigliati
Crea un account o accedi per commentare
Devi essere un utente per poter lasciare un commento
Crea un account
Registrati per un nuovo account nella nostra comunità. è facile!
Registra un nuovo accountAccedi
Hai già un account? Accedi qui.
Accedi ora