Zur Übersicht - INFO - Neueste 50 Beiträge - Neuer Beitrag - Suchen - Zum C-Control-I-Forum - Zum C-Control-II-Forum

Re: Serielle Daten in die CC schreiben Kategorie: Programmierung C (von Endress - 9.12.2009 16:24)
Als Antwort auf Re: Serielle Daten in die CC schreiben von UlliS - 7.12.2009 16:48

> > Hallo Ulli,
> >
> > danke für die schnelle Antwort.
> >
> > Mir ist dann doch recht schnell ein Licht aufgegangen:
> > Mit dem Projectboard gibt es scheinbar Probleme, weil die IDE
> > noch auf eine Rückmeldung von der CC wartet, wenn man das Programm
> > startet und sobald der serielle Bus vom Controller aus initialisiert
> > wird, ist der dicht und die IDE schmiert ab.
> >
> > Mit dem Applicationboard tritt der Fehler nicht auf...
> >
> > Gruss, Endress
> >
>
>
> Hi,
>
> also abschmieren ist mir nicht bekannt, aber du darfst natürlich nicht UART und Debugger
> zur gleichen Zeit verwenden. Also auch nicht die MsgWrite... Befehle sondern musst SerialWrite...
> verwenden.
>
> Grü�e Ulli

Hallo,

ich habe die den Code auf dem Applicationboard zum laufen gebracht und wollte das heute
auf dem Projectboard umsetzen. Ergebnis: IDE schmiert unmittelbar beim Init des Seriellen
Ports ab. Ich habe alles auskommentiert, was irgendwie auf den seriellen Bus schreibt.

Ich möchte ungern das Applicationboard verbauen..

#define PortC0 16
#define PortC1 17
#define PortC2 18


char buffer[80],zeichen_str[50],Daten_Buffer[10];
int zeichen,Buffer_Index,exitcode,Buffer_Cnt;
byte command;


void main(void)
{
    SPI_Disable();

    //LCD_Init();
    //LCD_ClearLCD();

    command=0;
    exitcode=1;

    Port_DataDirBit(PortC0,1);
    Port_DataDirBit(PortC1,1);
    Port_DataDirBit(PortC2,1);


    Serial_Init_IRQ(0,buffer,120,120,SR_8BIT|SR_1STOP|SR_NO_PAR,SR_BD9600);

    do
    {
          Buffer_Index=0;

          Buffer_Cnt=Serial_IRQ_Info(0,RS232_FIFO_RECV);

          if(Buffer_Cnt!=0)
          {

            do
            {
                Buffer_Index=Buffer_Index+1;
                zeichen = Serial_ReadExt(0);


                if(zeichen!=13)    // alles ausser Return
                {
                    Daten_Buffer[Buffer_Index]=zeichen;
                    if(zeichen==256)   // Buffer leer dann Ende
                    {
                        exitcode=0;
                    }
                    else
                    {
                        // LCD_ClearLCD();
                        command = Daten_Buffer[1];
                        Str_WriteInt(command,zeichen_str,0);
                        // Serial_WriteText(0,zeichen_str);
                        // LCD_WriteText(zeichen_str);

                        /*
                            Relais 1 AN = 1  Aus = 2
                            Relais 2 AN = 3  Aus = 4
                            Relais 3 An = 5  Aus = 6
                            Alle Relais AUS = 0
                        */

                        switch(command)
                        {
                            case 49:
                            Port_WriteBit(PortC0,1);
                            break;

                            case 50:
                            Port_WriteBit(PortC0,0);
                            break;

                            case 51:
                            Port_WriteBit(PortC1,1);
                            break;

                            case 52:
                            Port_WriteBit(PortC1,0);
                            break;

                            case 53:
                            Port_WriteBit(PortC2,1);
                            break;

                            case 54:
                            Port_WriteBit(PortC2,0);
                            break;

                            case 48:
                            Port_WriteBit(PortC0,0);
                            Port_WriteBit(PortC1,0);
                            Port_WriteBit(PortC2,0);
                            break;
                        };
                    }
                }
            }while(exitcode);
        }
    }while(true);
}




    Antwort schreiben


Antworten:

Re: Serielle Daten in die CC schreiben (von UlliS - 9.12.2009 16:52)
    Re: Serielle Daten in die CC schreiben (von PeterS - 10.12.2009 17:36)
        Re: Serielle Daten in die CC schreiben (von Endress - 11.12.2009 22:39)
            Re: Serielle Daten in die CC schreiben (von PeterS - 12.12.2009 12:11)
                Re: Serielle Daten in die CC schreiben (von UlliS - 12.12.2009 12:42)
                    Re: Serielle Daten in die CC schreiben (von Endress - 14.12.2009 12:55)