- MultiPlus Wechselrichter Insel und Nulleinspeisung Conrad         
Seite 2 von 2 ErsteErste 12
Ergebnis 11 bis 16 von 16

Thema: RP6 steuern mittels M32

  1. #11
    Benutzer Stammmitglied
    Registriert seit
    01.05.2008
    Beiträge
    52
    Anzeige

    LiFePo4 Akku selber bauen - Video
    Ich schon wieder mit freudiger Botschaft.

    Hab in dem Programm nun diese if Abfragen wie "if ( dir_cruising == dir_cruising_high )" alle so ersetzt das die Variable dir_cruising nun auf true oder false oder 0 gesetzt wird und dadurch die abfragen etwas anders sind. Nun klappt das auch wunderbar.

    *lustig sein Roboterli in der Gegend herum steuer*
    *freu*

    Nun kommt die Änderung des I2C Slave Programms in der Basis dran.

    Mensch ich bin stolz wie sonst wa das des Ding nu so fährt wie es soll.

  2. #12
    Benutzer Stammmitglied
    Registriert seit
    01.05.2008
    Beiträge
    52
    Zitat Zitat von SlyD
    Schau Dir mal

    void task_commandProcessor(void)

    an.
    Da einfach nen neues Kommando hinzufügen (neuen case) in dem halt irgendwas gemacht wird active = param1 z.B.
    Der Aufruf geht dann genauso wie bei CMD_SETLEDS.

    MfG,
    SlyD

    Hallöle genau daran scheiter ich grad.
    Evtl hab ich was übersehen.

    Ich hab zwei neue CMD's definiert

    #define CMD_REMOTE_ON 13
    #define CMD_REMOTE_OFF 14

    sowohl im M32 als auch in der Base.

    im task_commandProcessor der Base (gibt es ja nur da) hab ich au noch 2 neue Fälle eingebaut:

    Code:
    			case CMD_REMOTE_ON:
                    remote_control=true;
                    break;
                case CMD_REMOTE_OFF:
                    remote_control=false;
                    break;
    die Variable remote_control hab ich au noch definiert.

    Im Hauptprogramm des M32 setze ich diese Varible dann mit

    Code:
    I2CTWI_transmitByte(I2C_RP6_BASE_ADR, CMD_REMOTE_ON);
    bzw
    I2CTWI_transmitByte(I2C_RP6_BASE_ADR, CMD_REMOTE_OFF);
    und in der Base wird die mittels einer if-abfrage
    if ( ( remote_control == false) ) {}
    else {}
    verwendet.

    Nur irgendwie klappt das nicht so wie es soll.
    Er rennt immer in die if-Abfrage rein als ob remote_control immer auf false wär.

    Die I2C Adresse der Base ist auch in beiden Programmen gleich.

  3. #13
    Benutzer Stammmitglied
    Registriert seit
    01.05.2008
    Beiträge
    52
    Hat keiner ne Idee?

    Habs auch mal noch probiert mit
    I2CTWI_transmit2Bytes(I2C_RP6_BASE_ADR, 0, CMD_REMOTE_ON);

    Was auch immer dieses 0 sein soll, wird in manchen anderen Programmen genutzt.

    Dreh mich hier grad auf der Stelle.

  4. #14
    Erfahrener Benutzer Roboter Genie Avatar von SlyD
    Registriert seit
    27.11.2003
    Ort
    Paderborn
    Alter
    39
    Beiträge
    1.516
    Die 0 gibt das Register an in das geschrieben werden soll.
    0 ist das Kommando Register. 1 bis 6 sind Register für Parameter.
    (kann man natürlich noch erweitern bei Bedarf und auch direkt beschreibbare Register könnte man einführen)

    Die 0 ist also absolut notwendig, sonst klappt es definitiv nicht.

    Ich habe gerade keine Zeit das zu testen, was passiert wenn Du einfach mal
    transmit3... (anstatt 2) verwendest?
    (so kannst Du nebenbei auch die Variable beliebig beschreiben indem Du
    remote_control = param1 schreibst... dann funktioniert das wie z.B. bei setLEDs)

    MfG,
    SlyD

  5. #15
    Benutzer Stammmitglied
    Registriert seit
    01.05.2008
    Beiträge
    52
    Vielen Dank, genau das war es.
    Nun funktioniert wirklich alles so wie es soll

  6. #16
    Benutzer Stammmitglied
    Registriert seit
    08.10.2011
    Beiträge
    51
    Hab jetzt mal bei der M32-Platine die LDRs benötigt. Beim compilieren kommt immer die Meldung, dass er getLightSensors() nicht kennt. Den Befehl getAllSensors kennt er aber. Da ich nur die Sensorendaten der LDRs brauche wie ich nicht die ganzen Sensordaten hochladen.

Seite 2 von 2 ErsteErste 12

Berechtigungen

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

MultiPlus Wechselrichter Insel und Nulleinspeisung Conrad