Hallo,
ich bin gerade am programmieren eines XC167. Soweit läuft mein Programm.
Ich möchte jedoch auch Daten und Texte mittels RS232 und Hyperterminal
an den PC senden bzw empfangen. Leider gelingt mir dies nicht. Ich hoffe
hier kann mir jemand helfen.
Die Daten und Texte sollen mittels den Funktion printf an die RS232
gesendet werden. Im Simulator bei Keil läuft das auch soweit. Jedoch
sehe ich nichts auf´m PC.
Ich habe hier gleich mal meinen Quellcode angehangen. Vielleicht sieht
da einer von euch was los ist und weshalb es nicht geht. Dazu muß ich
aber sagen, dass ich den XC167 mit nur 4MHz=fPLL betreibe.
#include "MAIN.H"
void ASC0_vInit(void)
{
ASC0_BG = 0x000C; // load ASC0 baud rate time reload
register
ASC0_CON = 0x0007; // load ASC0 control register
ASC0_RXFCON = 0x0102; // load ASC0 receive FIFO control
register
ASC0_TXFCON = 0x0102; // load ASC0 transmit FIFO control
register
ALTSEL0P3 |= 0x0400; // select alternate output function
P3 = (P3 & ~(uword)0x0400) | 0x0400; //set data register
DP3 = (DP3 & ~(uword)0x0400) | 0x0400; //set direction register
ASC0_TBIC_IR = 1; // indicates that the transmit buffer is
// empty
ASC0_TIC_IR = 1; // indicates that the transmit register
is
// empty
ASC0_CON |= 0x8000; // enable baud rate generator
}
void ASC0_vSendData(uword uwData)
{
ASC0_TBIC_IR = 0; // reset transmit buffer interrupt request
ASC0_TBUF = uwData; // load transmit buffer register
}
uword ASC0_uwGetData(void)
{
ASC0_RIC_IR = 0; // reset receive interrupt request
return(ASC0_RBUF); // return receive buffer register
}
ubyte ASC0_ubTxDataReady(void)
{
ubyte ubReturnValue;
ubReturnValue = 0;
if(ASC0_TIC_IR) // if sending of data is terminated
{
ubReturnValue = 1;
ASC0_TIC_IR = 0;
}
return(ubReturnValue); // return receive buffer register
}
void ASC0_vReceiverOn(void)
{
ASC0_CON_REN = 1; // enable the receiver
}
MfG Lars
Hallo, ich habe noch eine Info für euch. Beim Übertragen der Daten mit MEMtool bekomme ich eine Meldung das bei verifizieren eine Unstimmigkeit aufgetreten ist. Die Meldung lautet folgendermaßen: Address: expected: is: C0407Fh 00h 6Ch 1 differences MfG Lars
Doch funktioniert bei mir, habe mal ein "Hello World" gebastelt. Ist mit Tasking compiliert und über JTAG am EasyKit von Infineon geladen. Komplettes Projekt siehe Anhang, hex File ist auch dabei. Cheers Tannenzäpfle
Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.