timer e funzione WriteTimer.

7 Anni 10 Mesi fa #1 da mpeino
timer e funzione WriteTimer. è stato creato da mpeino
PREMESSA:
per pilotare un servo con un potenziometro ho scaricato il programma di Pinna da QUI .

Questo programma che funziona molto bene usa due funzioni WriteTimer0 per il Timer0 e WriteTimer1 per il Timer1 che servono a trasferire nei relativi registri TMR0H e TMR0L del Timer0 e nei registri TMR1H e TMR1L del timer1 il valore di una variabile decimale .

Fin qui è tutto apposto.

Il mio problema e che vorrei pilotare un servo a distanza tramite gli NRF24L01 per i quali vorrei utilizzare una libreria scritta da Fabio Fenoglio che si può scaricare da QUI .

Non ho trovato altre librerie soddisfacenti per pic ma una marea per arduino.

Questa libreria è scritta in MikroC, di conseguenza non posso utilizzare le funzioni che ho menzionato sopra.

Non ho trovato funzioni simili in MikroC (almeno credo).

Quindi non mi resta che rendere portabile il programma di Pinna creando io le funzioni ma questo e facile se il valore è costante ma se questo valore cambia con il variare del potenziometro la situazione si complica.

Sono aperto a qualsiasi consiglio.
Massimo.

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

  • mpeino
  • Elite Member
  • Elite Member
Di più
7 Anni 10 Mesi fa - 7 Anni 10 Mesi fa #2 da alfa75
Risposta da alfa75 al topic timer e funzione WriteTimer.
Ciao Massimo.

Le funzioni writeTimer0 e WriteTimer1,servono per ricaricrae il valore a 16 bit nei 2 registri TMR0H e TMR0L (o TMR1H e TMR1L) puoi benissimo sostituirle proprio ricaricando i registri separatamente.

Es.
nel codice di Pinna , se non vado errato il Timer1 viene ricaricato con il valore 15536
quindi puoi togliere il WriteTimer1(15536) e scrivere:

TMR1H = 0xC3; //timer1 MSB register
TMR1L = 0x50; //timer1 LSB register

stessa cosa per l'altro timer, così facendo con mikroC non dovresti avere problemi.

Saluti
Andrea
Ultima Modifica 7 Anni 10 Mesi fa da alfa75.

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

  • alfa75
  • Avatar di alfa75
  • Platinum Member
  • Platinum Member
Di più
7 Anni 10 Mesi fa #3 da mpeino
Risposta da mpeino al topic timer e funzione WriteTimer.

alfa75 ha scritto: nel codice di Pinna , se non vado errato il Timer1 viene ricaricato con il valore 15536
quindi puoi togliere il WriteTimer1(15536) e scrivere:

TMR1H = 0xC3; //timer1 MSB register
TMR1L = 0x50; //timer1 LSB register

stessa cosa per l'altro timer, così facendo con mikroC non dovresti avere problemi.
Andrea


fin qua ci sono arrivato anchio.

Ma se si analizza il programma di pinna c'è scritto :

timer0 = (unsigned int)(65536 -(pulse * FACTOR));

la variabile pulse e il risultato della conversione ADC.

E in questo punto che non so gestire il problema è qua che non so come fare a trascrivere il valore di timer0 nei due registri in quanto non conosco il valore di pulse in quanto varia continuamente.

Massimo

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

  • mpeino
  • Elite Member
  • Elite Member
Di più
7 Anni 10 Mesi fa - 7 Anni 10 Mesi fa #4 da alfa75
Risposta da alfa75 al topic timer e funzione WriteTimer.

Rendering Error in layout Message/Item: array_keys(): Argument #1 ($array) must be of type array, null given. Please enable debug mode for more information.

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

  • alfa75
  • Avatar di alfa75
  • Platinum Member
  • Platinum Member
Di più
7 Anni 10 Mesi fa #5 da mpeino
Risposta da mpeino al topic timer e funzione WriteTimer.
grazie Andrea da solo non ci sarei arrivato non ho studi riguardanti la programmazione sto imparando sul campo e tante strategie mi mancano

Massimo

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

  • mpeino
  • Elite Member
  • Elite Member
Di più
Moderatori: Mauro LaurentiPinnaStefAMatteo Garia

Registrati al sito

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

Registrati al sito LaurTec.

Login