PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : Problem mit der Seriellen Übertragung



Lostking
13.02.2016, 12:42
Hallo zusammen,

bin recht neu und auch unerfahren auf dem Gebiet der Microcontroller, daher hoffe ich das die Frage die kommt für euch nicht allzu dumm ist.

Nun zum Problem ich habe einen ATMEL T89C51CC01 auf einem kleinen Board mit LED's, Schiebeschaltern usw. Ich habe nun ein kleines Programm in C# geschrieben welches Daten senden und empfangen soll, senden via C# funktioniert ohne Probleme nur das senden vom Microcontroller nicht so ganz. Habe hierfür ein kleies Programm das bei betätigen eines Schiebeschalters etwas übertragen soll habe mit Putty geschaut was er überträgt. Gibt es da bessere bzw. funktioniert das so mit Putty überhaupt? In C# versuche ich das ganze mit ReadChar wieder abzugreifen und dann in einer TextBox auszugeben, vermute aber das Problem liegt auf seite des Microcontrollers.

31281

das sieht dann so aus für jedes mal Schiebeschalter betätigen bekomme ich in etwa der breite des grünen balken diese zeichen.

Vielen Dank im Voraus für die Hilfe.

Mfg Marc

Der Microcontroller code sieht wie folgt aus:


#include "t89c51cc01.h"
#include "fvs_bib_lcd.h"
#include <stdio.h>

char test = 0x01;
int uart_data;
int x;


void main (void)
{


SCON = 0x50; /* uart in mode 1 (8 bit), REN=1 */
TMOD = TMOD | 0x20 ; /* Timer 1 in mode 2 */
TH1 = 0xFD; /* 9600 Bds */
TL1 = 0xFD; /* 9600 Bds */
ES = 1; /* Enable serial interrupt*/
EA = 1; /* Enable global interrupt */
TR1 = 1; /* Timer 1 run */

P1=0x00;
init_lcd();
lcdsend ("Test");

while(1)
{

if (P0_7 == 1)
{
SBUF = test;
}

}
}



void serial_IT(void) interrupt 4
{
if (RI == 1)
{
RI = 0;
uart_data = SBUF;

x=uart_data;
SBUF = test;
}
else TI = 0;
}