Visualizzazione dei risultati da 1 a 5 su 5
  1. #1
    Utente di HTML.it
    Registrato dal
    Apr 2014
    Messaggi
    22

    [ARDUINO] Eseguire un interrupt per leggere dati da seriale

    Buongiorno,
    stavo lavorando ad un progetto con un Arduino Mega ed ho incontrato tra gli altri un problema di utilizzo su un interrupt.
    Nello specifico all'interno del loop ho delle istruzioni con le quali vado a fare la lettura dell'ora e della data dal mio DS1307 interrogandolo ogni secondo e andando a stampare su lcd.

    Ora, il problema sorge quando nello stesso ciclo loop mi serve andare ad interrogare la seriale per vedere se mi arrivano dati in ingresso(nel mio caso dati inviati da una radio che poi parserò e utilizzerò in funzioni esterne al loop).
    Se faccio queste due operazioni contemporaneamente nel loop risulta che i dati in ingresso sulla seriale vengono corrotti o arrivano troncati.

    La soluzione logica che mi era venuta in mente era l'utilizzo di un interrupt per i dati seriali dato che l'ora può anche sparire da lcd anche per 2/3 secondi, non mi interessa, ma ho dei problemi visto che sembra l'interrupt non funzioni.

    Ho inoltre letto che negli interrupt le comunicazioni seriali vengono scartate.
    Qualche suggerimento??
    Grazie in anticipo

  2. #2
    Utente di HTML.it L'avatar di torn24
    Registrato dal
    Aug 2008
    Messaggi
    551

    Ciao

    E' impossibile darti una risposta, è anche impossibile da quello che hai scritto, attribuire il problema al codice su arduino, potrebbe essere attribuito al codice di trasmissione e o a problemi elettronici.

    Se faccio queste due operazioni contemporaneamente nel loop risulta che i dati in ingresso sulla seriale vengono corrotti o arrivano troncati.
    Sicuramente serial.read legge un byte, se devi ricevere più byte dovrai pensare ad un ciclo solo per la seriale, altrimenti ci sarà una"pausa" tra la lettura di un byte ed esecuzione di altro codice.
    Tecnologia

  3. #3
    Utente di HTML.it
    Registrato dal
    Apr 2014
    Messaggi
    22
    Ho risolto con un while (Serial.available).......così facendo rimane nel ciclo fino a quando non termina la trasmissione seriale; per il mio progetto però sarebbe molto meglio utilizzare un interrupt
    Non esistono interrupt che si attiva quando arriva una comunicazione seriale senza bisogno di dare come parametro un pin??

  4. #4
    Utente di HTML.it
    Registrato dal
    Apr 2014
    Messaggi
    22
    Quote Originariamente inviata da jamal87 Visualizza il messaggio
    Ho risolto con un while (Serial.available).......così facendo rimane nel ciclo fino a quando non termina la trasmissione seriale; per il mio progetto però sarebbe molto meglio utilizzare un interrupt
    Non esistono interrupt che si attiva quando arriva una comunicazione seriale senza bisogno di dare come parametro un pin??

    Ho risolto con un while (Serial.available).......così facendo rimane nel ciclo fino a quando non termina la trasmissione seriale; per il mio progetto però sarebbe molto meglio utilizzare un interrupt
    Non esistono interrupt che si attiva quando arriva una comunicazione seriale senza bisogno di dare come parametro un pin??

  5. #5
    Utente di HTML.it
    Registrato dal
    Apr 2014
    Messaggi
    22
    Quote Originariamente inviata da torn24 Visualizza il messaggio
    E' impossibile darti una risposta, è anche impossibile da quello che hai scritto, attribuire il problema al codice su arduino, potrebbe essere attribuito al codice di trasmissione e o a problemi elettronici.



    Sicuramente serial.read legge un byte, se devi ricevere più byte dovrai pensare ad un ciclo solo per la seriale, altrimenti ci sarà una"pausa" tra la lettura di un byte ed esecuzione di altro codice.
    Ho risolto con un while (Serial.available).......così facendo rimane nel ciclo fino a quando non termina la trasmissione seriale; per il mio progetto però sarebbe molto meglio utilizzare un interrupt
    Non esistono interrupt che si attiva quando arriva una comunicazione seriale senza bisogno di dare come parametro un pin??

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2025 vBulletin Solutions, Inc. All rights reserved.