Pilotare un servomotore con un potenziometro

10 Anni 3 Mesi fa #56 da StefA
bè, questo:
OpenTimer1(TIMER_INT_ON

nel programma di questo tread, non viene fatto.

Sto facendo delle prove, ma che si abiliti o meno a mano l'interrupt del timer1 funziona ugualmente, almeno sembra.

Ste

..avevano magari fatto lo sgambetto al ka, ma il sangue restava sempre più denso dell'acqua.. [cit.]

Si prega Accedi o Crea un account a partecipare alla conversazione.

  • StefA
  • Avatar di StefA
  • Moderator
  • Moderator
Di più
10 Anni 3 Mesi fa #57 da StefA
Ulteriore prova, che io imposti così:
// Abilito le interruzioni del Timer1
PIE1bits.TMR1IE = 1;

// Abilito le interruzioni del Timer1 ad alta priorità
IPR1bits.TMR1IP = 1;

oppure così:
// Disabilito le interruzioni del Timer1
PIE1bits.TMR1IE = 0;

// Abilito le interruzioni del Timer1 a bassa priorità
IPR1bits.TMR1IP = 0;

e che metta interrupt con sola priorità alta o con priorità alta e bassa, il programma continua a funzionare.

E' chiaro che il timer1 funziona in modo diverso da quello che pensavo o c'è qualcosa nel programma che non ho capito.

Ste

..avevano magari fatto lo sgambetto al ka, ma il sangue restava sempre più denso dell'acqua.. [cit.]

Si prega Accedi o Crea un account a partecipare alla conversazione.

  • StefA
  • Avatar di StefA
  • Moderator
  • Moderator
Di più
10 Anni 3 Mesi fa #58 da Pinna
secondo me, l'istruzione è questa:

// Abilito il Timer1
T1CONbits.TMR1ON = 1;

fai la prova di disinserire il timer1... vedrai che il servo non funziona.


Avessi avuto l'oscilloscopio avrei potuto controllare i due segnali...

Marcello

Chi vola vale, chi vale vola, chi non vola è un vile

Si prega Accedi o Crea un account a partecipare alla conversazione.

  • Pinna
  • Avatar di Pinna
  • Moderator
  • Moderator
Di più
10 Anni 3 Mesi fa #59 da StefA
quello dovrebbe essere il bit per farlo iniziare a contare e dovrebbe essere una cosa diversa dall'interrupt.
perché il timer0 lo imposti diversamente?

Ste

..avevano magari fatto lo sgambetto al ka, ma il sangue restava sempre più denso dell'acqua.. [cit.]

Si prega Accedi o Crea un account a partecipare alla conversazione.

  • StefA
  • Avatar di StefA
  • Moderator
  • Moderator
Di più
10 Anni 3 Mesi fa #60 da Pinna
timer0 lo impostato così per seguire gli esempi di Mauro. Mi spiego meglio, potevo includere il file "timers.h" e aprire i due timers come riportato nell'esempio di Samuel. Però in questo modo non avrei seguito le indicazioni descritte, riga per riga, nel tutorial del C18. Stessa cosa ho fatto poi con il timer1. Io ho capito cosa vuoi dire, nel caso del timer0 abilito le interruzioni, nel timer1 non lo faccio. Secondo me, vengono abilitate lo stesso, magari da qualche configuration bit di mplab. Oppure è mio errore, ma se funziona lo stesso non mi sorprende affatto, dato che con Mauro siamo rimasti sorpresi che, in un altro progetto, un'altra cosa funzionasse, con lo stesso compilatore, quando invece non l'avrebbe dovuto fare. In effetti, mi ricordo che quando ho provato ad utilizzare solo il timer1 ad alta priorità ho dovuto aggiungere delle istruzione, purtroppo non mi ritrovo il progetto altrimenti te lo avrei allegato per un confronto. Ma continuo a cercarlo, mi hai fatto incuriosire... ben vengano le domande e i dubbi, ci aiutano a capire ed imparare sempre di più...

Marcello

Chi vola vale, chi vale vola, chi non vola è un vile

Si prega Accedi o Crea un account a partecipare alla conversazione.

  • Pinna
  • Avatar di Pinna
  • Moderator
  • Moderator
Di più

Registrati al sito

Accedi a tutte le risorse e articoli non visibili pubblicamente, puoi registrarti con pochi passi.

Registrati al sito LaurTec.

Login