Gast
#2051777
Möchte mit dem Programm den AD-Wert des AD-Wandlers ans Hyper Terminal
schicken. Dazu hab ich diese Programm geschrieben.
#include "p24fj128ga010.h"
#include "adcDrv2.h"
void InitUart (void)
{
// Load a value into Baud Rate Generator. Example is for 9600.
// See section 19.3.1 of datasheet.
// U2BRG = (Fcy/(16*BaudRate))-1
// U2BRG = (4M/(16*9600))-1
// U2BRG = 25;
U2BRG = 25;
U2MODEbits.STSEL = 0; // 1-stop bit
U2MODEbits.PDSEL = 0; // No Parity, 8-data bits
U2MODEbits.ABAUD = 0; // Autobaud Disabled
IEC1bits.U2RXIE = 1;
IPC7bits.U2RXIP = 1;
IFS1bits.U2RXIF = 0;
IPC7bits.U2TXIP = 0x04;
IPC7bits.U2RXIP = 0x04;
U2MODEbits.UARTEN = 1; // And turn the peripheral on
U2STAbits.UTXEN = 1;
}
int main (void)
{
AD1PCFG = 0xffff;
TRISA = 0;
TRISD = 0xff;
InitUart ();
// Disable Watch Dog Timer
RCONbits.SWDTEN = 0;
// Peripheral Initialisation
initAdc1(); // Init the A/D converter to convert Channel 5
while (1){
U2TXREG='h';
U2TXREG='a'; U2TXREG='l'; U2TXREG='l'; U2TXREG='o';
}
}
der AD-Wandler funktioniert einwandfrei (Hab ihn an den LED´s
ausgegeben). Zum Testen des Uarts schike ich erst mals nur Buchstaben.
so nun zu meinem Problem wie man im Programmtext lesen kann versuche ich
ein Hallo ans hyperterminal zu schicken. das Einzigste was dort aber
ankommt ist ein h und ab und zu ein l zeitweise empfange ich auch nur
ein i oder andere Zeichen.
Ich denke das es ist ein Problem mit der Baudrate. Weiß aber nicht wie
ich den Internen Clock einstelle das ich damit meine Baudrate berechen
kann.