28.05.2013, 13:21
Hallo Leute,
ich möchte von meinem Mikrocontroller bei jedem Programmdurchlauf drei Byte an LabView senden.
Um den µC und LabView miteinander zu synchronisieren lasse ich LabView ein 's' schicken und der Mikrocontroller sendet die drei Byte erst wenn er das 's' von LabView empfangen hat.
Folgende Funktion habe ich auf dem ATMega128 dafür implementiert:
// USART: LabView controlled Transmit
//-----------------------------------
void USART_Transmit_LabView(unsigned char data, unsigned char peak, unsigned char RR)
{
unsigned char get_letter;
if(UCSR1A & (1<<RXC1))
{
get_letter = UDR1;
switch(get_letter)
{
case 's':
USART_Transmit(data);
USART_Transmit(peak);
USART_Transmit(RR);
break;
default:
break;
}
}
get_letter = 0;
}
Von dem VI in LabView habe ich ein Bild angehängt.
Das Problem ist jetzt dass LabView die Werte anscheinend nicht richtig in der Reihenfolge in das Array schreibt und dann anzeigt wie ich die drei Byte sende.
Die Werte werden durcheinander in den zwei Graphen und dem Anzeigeelement dargestellt. Woran kann das liegen?
ich möchte von meinem Mikrocontroller bei jedem Programmdurchlauf drei Byte an LabView senden.
Um den µC und LabView miteinander zu synchronisieren lasse ich LabView ein 's' schicken und der Mikrocontroller sendet die drei Byte erst wenn er das 's' von LabView empfangen hat.
Folgende Funktion habe ich auf dem ATMega128 dafür implementiert:
// USART: LabView controlled Transmit
//-----------------------------------
void USART_Transmit_LabView(unsigned char data, unsigned char peak, unsigned char RR)
{
unsigned char get_letter;
if(UCSR1A & (1<<RXC1))
{
get_letter = UDR1;
switch(get_letter)
{
case 's':
USART_Transmit(data);
USART_Transmit(peak);
USART_Transmit(RR);
break;
default:
break;
}
}
get_letter = 0;
}
Von dem VI in LabView habe ich ein Bild angehängt.
Das Problem ist jetzt dass LabView die Werte anscheinend nicht richtig in der Reihenfolge in das Array schreibt und dann anzeigt wie ich die drei Byte sende.
Die Werte werden durcheinander in den zwei Graphen und dem Anzeigeelement dargestellt. Woran kann das liegen?