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

Thema: RP6_M32 - M32 soll das was per uart geschick wird im Display ausgeben !?!

Baum-Darstellung

Vorheriger Beitrag Vorheriger Beitrag   Nächster Beitrag Nächster Beitrag
  1. #13
    Erfahrener Benutzer Begeisterter Techniker
    Registriert seit
    27.07.2010
    Ort
    Aachen ---- NRW
    Beiträge
    251
    Okay habe das so erstmal geschaft, aber es gibt schon wieder ein neues problem.
    Wenn ich es so mache:

    Code:
    void task_befehle(void)
        {
            Eingabe();
            
            long pos = atoi(Buffer);
    
        
                    if(pos < 180 && pos > 0)
                    {
                        servo1_position =  pos;
                    }
                    else
                        if(pos < 360 && pos > 180)
                    {
                        servo2_position =  pos - 180;
                    }
                        else
                            if(pos < 540 && pos > 360)
                        {
                            servo3_position =  pos - 360;
                        }
                            else
                                if(pos == -1)
                                {
                                    I2CTWI_transmitByte(PCF, 0);
                                }
                                else
                                    if(pos == -2)
                                    {
                                        I2CTWI_transmitByte(PCF, 3);
                                    }
            
        }
    
    void task_sensoren(void)
        {
            getAllSensors();
            writeIntegerLength((((adcBat/102.4f)+0.1f)), DEC, 2);
            writeString_P(".\n");
            writeIntegerLength((((adcBat/1.024f)+10)), DEC, 2);
            writeString_P("V\n");
            writeIntegerLength(adcLSL,DEC,4);
            writeString_P("L\n");
            writeIntegerLength(adcLSR,DEC,4);
            writeString_P("R\n");
        }
    
    uint32_t Eingabe(void){
    
                static buffer_pos = 0;
                
                if(getBufferLength())
                {
                    Buffer[buffer_pos]=readChar();
    
                if(Buffer[buffer_pos]=='\n')
                {
                    Buffer[buffer_pos] = '\0';
                    buffer_pos = 0;
    
                return 1;
                }
            
                else if(buffer_pos >= UART_RECEIVE_BUFFER_SIZE) 
                {
                    Buffer[UART_RECEIVE_BUFFER_SIZE] = '\0'; 
                    buffer_pos = 0;
    
                return 2;
                }
                
                buffer_pos++;
            }        
        return 0;
    }
    
    int main(void)
    {  
    
        initRP6Control();
        initLCD();
        initSERVO(SERVO1  |  SERVO2   |   SERVO3);
    
        WDT_setRequestHandler(watchDogRequest); 
    
        I2CTWI_initMaster(100);
        I2CTWI_setRequestedDataReadyHandler(I2C_requestedDataReady);
        I2CTWI_setTransmissionErrorHandler(I2C_transmissionError);
        
        
        setLEDs(0b111111);
        mSleep(500);
        setLEDs(0b000000);
        
        I2CTWI_transmit3Bytes(I2C_RP6_BASE_ADR, 0, CMD_SET_WDT, true);
        I2CTWI_transmit3Bytes(I2C_RP6_BASE_ADR, 0, CMD_SET_WDT_RQ, true);
        I2CTWI_transmitByte(PCF, 0);
    
    
        
        while(true)  
        {
            task_I2CTWI();
            task_befehle();
            task_sensoren();
            task_SERVO();
         }
        return 0;
    }
    Zappeln die Servos nur rum und die Sensordaten ändern sich nicht.

    Empfangen mache ich in Visual C# so :

    Code:
            public void Daten_Empfangen()
            {
                string[] Volt = serialPort1.ReadLine().Split('.');
                string[] LVolt = serialPort1.ReadLine().Split('V');
                string[] Licht = serialPort1.ReadLine().Split('L');
                string[] LLicht = serialPort1.ReadLine().Split('R');
                string Akku = Volt[0] + LVolt[0];
                string Licht_L = Licht[0];
                string Licht_R = LLicht[0];
    
                label9.Text = Volt[0].Replace("0", "") + "." + LVolt[0] + " Volt";
    
                if (Convert.ToInt32(Akku) > progressBar1.Maximum)
                {
                    progressBar1.Maximum = Convert.ToInt32(Akku);
                }
                else
                    progressBar1.Value = Convert.ToInt32(Akku);
    
                if (Convert.ToInt32(Licht_R) > progressBar2.Maximum)
                {
                    progressBar2.Maximum = Convert.ToInt32(Licht_R);
                }
                else
                    progressBar2.Value = Convert.ToInt32(Licht_R);
    
    
                if (Convert.ToInt32(Licht_L) > progressBar3.Maximum)
                {
                    progressBar3.Maximum = Convert.ToInt32(Licht_L);
                }
                else
                    progressBar3.Value = Convert.ToInt32(Licht_L);
    
            }
    
     private void timer2_Tick(object sender, EventArgs e)
            {
                if (checkBox1.Checked)
                {
                    Daten_Empfangen();
                }
            }
    Hoffe ihr könnt mir nochmal helfen.

    mfG
    Philip
    Geändert von AsuroPhilip (29.05.2011 um 16:40 Uhr)

Ähnliche Themen

  1. Asuro soll an Matlab ausgeben
    Von blueyo im Forum Asuro
    Antworten: 1
    Letzter Beitrag: 05.03.2011, 19:14
  2. Antworten: 75
    Letzter Beitrag: 12.12.2010, 21:34
  3. Antworten: 13
    Letzter Beitrag: 21.11.2010, 18:41
  4. Crash Bobby soll Text auf Monitor ausgeben
    Von palermo im Forum Sonstige Roboter- und artverwandte Modelle
    Antworten: 7
    Letzter Beitrag: 11.12.2006, 14:09
  5. Asuro soll Text ausgeben :D
    Von R3ð_BuLL© im Forum Asuro
    Antworten: 4
    Letzter Beitrag: 09.11.2006, 10:26

Berechtigungen

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

Solar Speicher und Akkus Tests