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 UlliS - 9.12.2009 16:52)
Als Antwort auf Re: Serielle Daten in die CC schreiben von Endress - 9.12.2009 16:24
Ich nutze:
C-Control Pro Mega32, C-Control Pro Mega128, CC-Pro 32 Application Board, CC-Pro 128 Application Board, Pro-Bot128
> > > 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);
> }
>
>

Hi,

deine IDE schmiert nach dem Start per Software bzw. per Hardwarerest ab?
Benutzt du einen USB zu UART Konverter oder die RS232?
Wenn du den USB zu UART Konverter verwendest würde ich evtl. mal die
aktuellen Treiber von SiLabs teste, aber dieses Problem war mich bis jetzt unbekannt.
Vieleicht kann unser Peter was dazu sagen?

https://www.silabs.com/products/mcu/Pages/USBtoUARTBridgeVCPDrivers.aspx


Grü�e Ulli


    Antwort schreiben


Antworten:

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)