by had » Sat Aug 29, 2009 12:00 am
Hallo!
Noch ein Nachtrag mein Programm sieht wie folgt aus
#include "sfr111.h"
#include "hwsetup.h"
// Interrupt declaration
//#pragma INTERRUPT TimerA0_int
// functions
void uart1_init(void);
void sendTxd1(unsigned char data);
unsigned char receiveRxd1(void);
// globals
char ch;
// main function
void main(void)
{
ConfigureOperatingFrequency();// init oscillator an pll
uart1_init(); // init uart1
while(1)
{
// ch = receiveRxd1();
sendTxd1(1);
}
}
// init Uart1
void uart1_init(void)
{
pd6_7 = 1; // Txd output
pd6_6 = 0; // RxD input
p6_7 = 1; // Txd output
p6_6 = 0; // RxD input
u1brg = 97; // Count Sorce of BGR f1
// Setting value of BRG
u1mr = 0x05; // 8 bit, internal clock, 1 stop bit, non inverted
u1c0 = 0x00; // count source f1, resered, 0, cts enabled, 0, LSB
u1c1 = 0x05; // Txd enabled, 0, Rxd enabled, 0, continuous reiceve mode, non inverted, 0
u1rrm_u1c1 = 1;
re_u1c1 = 1;
}
void sendTxd1(unsigned char data)
{
while (ti_u1c1 == 0); //Wait for transmission buffer emty
u1tb = data; //Set transmission data
te_u1c1 = 1; // Transmission enabled
}
unsigned char receiveRxd1(void)
{
unsigned char data;
unsigned char dummy;
while (ir_s1ric == 0); //Wait for received data
ir_s1ric = 0;
data = u1rbl; //Get reception data
dummy = u1rbh; //Get error
re_u1c1 = 1; // Reception enabeld
return data;
}