Inserire codice ASM in listato C

10 Anni 2 Settimane fa - 10 Anni 2 Settimane fa #1 da Lello Guidi
Inserire codice ASM in listato C è stato creato da Lello Guidi
Salve, avrei bisogno di capire con un semplice esempio, come inserire del codice Assembler o una funzione in assembler in un listato C.
Nel compilatore PICC 9.83, nel file "pic.h" da includere c'e' la definizione:
#define SLEEP() asm("sleep")

ma non so la sintassi da usare nel listato C.

Lello
Ultima Modifica 10 Anni 2 Settimane fa da Lello Guidi. Motivo: Aggiunta spiegazione

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

  • Lello Guidi
  • Avatar di Lello Guidi
  • Platinum Member
  • Platinum Member
Di più
10 Anni 2 Settimane fa #2 da Lello Guidi
Risposta da Lello Guidi al topic Inserire codice ASM in listato C
RISOLTO!
Basta inserire il codice: asm("sleep");
e il pic va in "letargo"
Adesso devo capire come farlo resuscitare senza usare il tasto reset.
E se qualc'uno mi puo' semplificare la vita...

Lello

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

  • Lello Guidi
  • Avatar di Lello Guidi
  • Platinum Member
  • Platinum Member
Di più
10 Anni 2 Settimane fa #3 da StefA
Risposta da StefA al topic Inserire codice ASM in listato C
nella parte relativa allo SLEEP, nel datasheet, viene indicato solitamente cosa lo sveglia, ad esempio un timer, un watchdog timer, un interrupt esterno, la pressione di un pulsante, un dato arrivato sulla seriale..
Dipende dal pic, cosa stai usando?

Ste

..avevano magari fatto lo sgambetto al ka, ma il sangue restava sempre più denso dell'acqua.. [cit.]
Ringraziano per il messaggio: Lello Guidi

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

  • StefA
  • Avatar di StefA
  • Moderator
  • Moderator
Di più
10 Anni 2 Settimane fa #4 da Lello Guidi
Risposta da Lello Guidi al topic Inserire codice ASM in listato C
Adesso uso il 16F877a ma sto iniziando a documentarmi sul 18F45550 tramite la dispensa di Mauro sul C18.
Saluti

Lello

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

  • Lello Guidi
  • Avatar di Lello Guidi
  • Platinum Member
  • Platinum Member
Di più
10 Anni 1 Settimana fa #5 da StefA
Risposta da StefA al topic Inserire codice ASM in listato C
riguardo il pic18F4550 riassumendo lo mandi a nanna eseguendo l'istruzione SLEEP, se il bit IDLEN è pari a 0 va in "Sleep Mode" se il bit IDLEN è pari a 1 va in "Idle Mode", nel primo caso "dorme tutto", nel secondo "qualcosa è sveglio".
A pag 35 (OSCCON: OSCILLATOR CONTROL REGISTER) trovi cone settare IDLEN e la sorgente del clock tramite SCS1:SCS0; a pag 37 (POWER-MANAGED MODES) trovi i vari modi di "dormire" e cosa resta acceso, a pag 42 ti spiega quali eventi lo risvegliano.
Questi sono solo i tratti salienti, è consigliabile leggersi tutta la sezione così da capire a fondo.

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ù
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