- fchao-Sinus-Wechselrichter AliExpress         
Ergebnis 1 bis 10 von 33

Thema: FM-Radio mit Arduino Pro Mini und Si4703 - Programm hängt sich auf!

Baum-Darstellung

Vorheriger Beitrag Vorheriger Beitrag   Nächster Beitrag Nächster Beitrag
  1. #13
    Erfahrener Benutzer Fleißiges Mitglied Avatar von basteluwe
    Registriert seit
    15.11.2012
    Beiträge
    131
    Zitat Zitat von HaWe Beitrag anzeigen
    Aber mal eine ganz andere Frage :
    Wo in deinem Sketch (void setup() ) startest du denn überhaupt Wire mit Wire.begin() - irgendwie sehe ich es nicht....?
    Du hast Recht, den Befehl Wire.begin() gibt es bei mir bisher nicht. Wenn das ein Fehler ist, muß ich das ggf. ändern.
    Allerdings hab ich mich beim Aufbau des Code an ein Beispiel aus der originalen "radio.h" Library angelehnt.
    Siehe hier:
    Code:
    #include <Wire.h>
    #include <radio.h>
    #include <SI4703.h>
    
    #include <RDSParser.h>
    
    SI4703   radio;    ///< Create an instance of a SI4703 chip radio.
    
    
    RDSParser rds;    /// get a RDS parser
    
    
    /// State definition for this radio implementation.
    enum RADIO_STATE {
      STATE_PARSECOMMAND, ///< waiting for a new command character.
    
      STATE_PARSEINT,     ///< waiting for digits for the parameter.
      STATE_EXEC          ///< executing the command.
    };
    
    RADIO_STATE state; ///< The state variable is used for parsing input characters.
    
    
    /// Update the Frequency on the LCD display.
    void DisplayFrequency(RADIO_FREQ f)
    {
      char s[12];
      radio.formatFrequency(s, sizeof(s));
      Serial.print("FREQ:"); Serial.println(s);
    } // DisplayFrequency()
    
    
    /// Update the ServiceName text on the LCD display.
    void DisplayServiceName(char *name)
    {
      Serial.print("RDS:");
      Serial.println(name);
    } // DisplayServiceName()
    
    
    void RDS_process(uint16_t block1, uint16_t block2, uint16_t block3, uint16_t block4) {
      rds.processData(block1, block2, block3, block4);
    }
    
    
    
    
    
    /// Setup a FM only radio configuration with I/O for commands and debugging on the Serial port.
    void setup() {
      // open the Serial port
      Serial.begin(57600);
      Serial.print("Radio...");
      delay(500);
    
      // Initialize the Radio 
      radio.init();
    
      // Enable information to the Serial port
      radio.debugEnable();
    
      radio.setBandFrequency(RADIO_BAND_FM, 8760);
    
      // delay(100);
    
      radio.setMono(false);
      radio.setMute(false);
      // radio.debugRegisters();
      radio.setVolume(8);
    
      Serial.write('>');
    
      state = STATE_PARSECOMMAND;
    
      // setup the information chain for RDS data.
      radio.attachReceiveRDS(RDS_process);
      rds.attachServicenNameCallback(DisplayServiceName);
    
    } // Setup
    
    
    /// Constantly check for serial input commands and trigger command execution.
    void loop() {
      int newPos;
      unsigned long now = millis();
      static unsigned long nextFreqTime = 0;
      static unsigned long nextRadioInfoTime = 0;
    
      // some internal static values for parsing the input
      static char command;
      static int16_t value;
      static RADIO_FREQ lastf = 0;
      RADIO_FREQ f = 0;
    
      char c;
      
    
    
      // check for RDS data
      radio.checkRDS();
    
      // update the display from time to time
      if (now > nextFreqTime) {
        f = radio.getFrequency();
        if (f != lastf) {
          // print current tuned frequency
          DisplayFrequency(f);
          lastf = f;
        } // if
        nextFreqTime = now + 400;
      } // if  
    
    } // loop
    
    // End.
    Dort gibt es den Befehl auch nicht. Da es beim Kompilieren keine Probleme gab habe ich vermutet, das die Library "radio.h" das implementiert hat. Eventuell passiert das im Befehl "radio.init()" im Setup?
    Ich meine auch andere Beispiele gesehen zu haben, wo das mit dem fehlenden Wire.begin() so ist!?

    Gruß Uwe
    Geändert von basteluwe (17.02.2018 um 13:04 Uhr)

Ähnliche Themen

  1. Unit 1.2 hängt sich auf
    Von Billy51 im Forum Open Source Software Projekte
    Antworten: 0
    Letzter Beitrag: 06.03.2011, 12:52
  2. Timer hängt sich auf?
    Von Ineedhelp im Forum C - Programmierung (GCC u.a.)
    Antworten: 15
    Letzter Beitrag: 22.08.2008, 16:49
  3. Programm hängt sich auf
    Von martin66119 im Forum Basic-Programmierung (Bascom-Compiler)
    Antworten: 5
    Letzter Beitrag: 07.10.2007, 21:06
  4. LCD hängt sich auf
    Von hotijack im Forum Basic-Programmierung (Bascom-Compiler)
    Antworten: 4
    Letzter Beitrag: 30.05.2007, 16:47
  5. Lade Programm geht nicht (hängt sich auf)
    Von REX im Forum Robby CCRP5
    Antworten: 1
    Letzter Beitrag: 11.09.2004, 04:19

Berechtigungen

  • Neue Themen erstellen: Nein
  • Themen beantworten: Nein
  • Anhänge hochladen: Nein
  • Beiträge bearbeiten: Nein
  •  

Solar Speicher und Akkus Tests