- MultiPlus Wechselrichter Insel und Nulleinspeisung Conrad         
Ergebnis 1 bis 10 von 23

Thema: RP6 Slave und M32 Slave

Hybrid-Darstellung

Vorheriger Beitrag Vorheriger Beitrag   Nächster Beitrag Nächster Beitrag
  1. #1
    Erfahrener Benutzer Roboter Experte
    Registriert seit
    06.11.2010
    Beiträge
    773
    Hi!
    Ich möchte gerade die ADCs der M128 via BT senden.
    Habe dafür folgendes im Manual gefunden:
    Code:
    Syntax
    word ADC_Set(byte v_ref,byte channel);
    Sub ADC_Set(v_ref As Byte,channel As Byte) As Word
    Beschreibung
    Die Funktion ADC_Set initialisiert den Analog-Digital_Wandler. Die Referenzspannung und der Messkanal
    werden ausgewählt, und der A/D Wandler für die Messungen vorbereitet. Der Meßwert wird danach mit
    ADC_Read() ausgelesen.
    Parameter
    channel Portnummer (0..7) des ADC (Port A.0 bis A.7 bei Mega32, Port F.0 bis F.7 bei
    Mega128)
    v_ref Referenzspannung (siehe Tabelle)
    Ich mache das mit Fabian E.'s Code:
    Code:
                  print("Bat:");
                  printInteger(adcBat);
                  print("\n");
                  oldBat = adcBat;
    Daher, denke ich, muss es dann folgendermaßen aussehen:
    Code:
                  ADC_Set(ADC_VREF_VCC,0)
                  print("ADC0_M128:");
                  printInteger(ADC_Read(void));
                  print("\n");
    Leider kommt da nix bei mir an...

    Vg,
    Fabian

  2. #2
    Erfahrener Benutzer Robotik Einstein Avatar von Dirk
    Registriert seit
    30.04.2004
    Ort
    NRW
    Beiträge
    3.803
    Was ist "nix"? Null?
    Was hast du an PF0 (ADC-Stecker Pin 4) angeschlossen?
    Gruß
    Dirk

  3. #3
    Erfahrener Benutzer Roboter Experte
    Registriert seit
    06.11.2010
    Beiträge
    773
    Gar nix:
    Code:
    #*#*#
    [DATA]
    PowerL:3
    LightL:887
    LightR:875
    [/DATA]
    [DATA]
    PowerL:4
    LightL:886
    LightR:874
    Temp:2469
    [/DATA]
    Code ist wie oben, erst et, dann print(read).

  4. #4
    Erfahrener Benutzer Roboter Experte
    Registriert seit
    06.11.2010
    Beiträge
    773
    mit den Status LEDs der Base klappts auch nicht:
    Code:
            print("LEDs_Base:");
            printInteger(I2C_REG_LEDS);
            print("\n");

  5. #5
    Erfahrener Benutzer Roboter Experte
    Registriert seit
    06.11.2010
    Beiträge
    773
    Also das mit den LEDs klappt! Doofer fehler.
    Aber wie lese ich denn vernünftig die ganzen ADCs der M128 aus und sende sie?

    Vg

  6. #6
    Erfahrener Benutzer Roboter Genie Avatar von SlyD
    Registriert seit
    27.11.2003
    Ort
    Paderborn
    Alter
    40
    Beiträge
    1.516
    > printInteger(ADC_Read(void));

    void übergibt man i.d.R. nicht - das ist nur nen platzhalter bei der Deklaration von Funktionen und steht für NIX.
    Aber das nur nebenbei.


    Teste es doch einfach mal mit dem Beispielprogramm Example_03_IO_Threads
    Da werden alle ADCs ausgelesen (den Start Taster paar mal drücken!).


    MfG,
    SlyD

  7. #7
    Erfahrener Benutzer Roboter Experte
    Registriert seit
    06.11.2010
    Beiträge
    773
    Danke dir, hab das mal gemacht:
    Code:
                char tmp[16];
                word result;
    
                    ADC_Set(ADC_VREF_VCC,0);  // Kanal wählen...
                    Thread_Delay(25);               // ... warten ...
                    result = ADC_Read();            // ... und auslesen.
    
                    // Messwert ausgeben:
                    print("ADC_M128(0): ");
                    Str_WriteInt(result,tmp,0);
                    Serial_WriteText(0,tmp);
                    print("\n");
    
                    ADC_Set(ADC_VREF_VCC,7);  // Kanal wählen...
                    Thread_Delay(25);               // ... warten ...
                    result = ADC_Read();            // ... und auslesen.
    
                    // Messwert ausgeben:
                    print("ADC_M128(7): ");
                    Str_WriteInt(result,tmp,0);
                    Serial_WriteText(0,tmp);
                    print("\n");
    erste Frage: Was soll das tmp[16]?
    Zweite: Wo kann ich das Setzen des ADCs (ADC_Set(ADC_VREF_VCC,0) ) und das thread_delay sonst hintun?
    Ich brauche ja nach dem ADC-anschalten etwas Zeit, um die Messung abzuwarten... oder kann man das einfach rauslassen?

Ähnliche Themen

  1. Slave Transmitter und Slave Receiver Mode
    Von masasibe im Forum Basic-Programmierung (Bascom-Compiler)
    Antworten: 1
    Letzter Beitrag: 26.02.2011, 19:55
  2. I2C Slave
    Von Jada im Forum Basic-Programmierung (Bascom-Compiler)
    Antworten: 1
    Letzter Beitrag: 19.06.2010, 11:47
  3. Slave-Master-Slave übertragung geht nicht
    Von Dämmi im Forum Basic-Programmierung (Bascom-Compiler)
    Antworten: 16
    Letzter Beitrag: 26.11.2008, 00:08
  4. I2C-Slave
    Von liggi im Forum C - Programmierung (GCC u.a.)
    Antworten: 1
    Letzter Beitrag: 02.01.2008, 16:02
  5. Pic als Slave am I2C
    Von kalletronic im Forum PIC Controller
    Antworten: 4
    Letzter Beitrag: 04.08.2006, 19:46

Berechtigungen

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

Labornetzteil AliExpress