Gast
#7053564
Hallo zusammen,
ich bin aktuell an einem hauseigenen Projekt dran, worin ich einen
Elektromotor mittels eines Motorcontrollers steuern möchte.
Hierbei arbeite ich aktuell an der Herstellung einer Verbindung meines
Mikrocontroller DSPIC30F4011 und meinem PC. Als Test will ich dauerhaft
das unsigned char "48" senden.
Leider scheitert mein Programmcode und ich kriege keine UART-Verbindung
hergestellt, obwohl ich alles erdenkliche probiert habe. Habe ich einen
Denkfehler mit den Ports?
Hat jemand Erfahrung oder sieht meinen Fehler in meinem Code?
Ich würde mich sehr über Unterstützung freuen, da ich seit Tagen in
einer Sackgasse sitze.
Falls noch mehr Infos benötigt werden, kann ich diese sehr gerne geben.
Meinen Code findet ihr hier:
#pragma config FPR = FRC_PLL16
#pragma config FOS = FRC
#pragma config FCKSMEN = CSW_FSCM_OFF
#pragma config WDT = WDT_OFF
#pragma config FPWRT = PWRT_OFF
#include <stdio.h>
#include <stdlib.h>
#include <stdint.h>
#include <xc.h>
#include <libpic30.h>
#include <math.h>
#include "p30F4011.h"
#define FCY 30000000
#define MILLISEC FCY/30000
#define BAUD 9600 //Baudrate
unsigned char uc_data = 48;
void UART_Init();
void __attribute__((interrupt, no_auto_psv)) _U1TXInterrupt(void);
int main(void) {
UART_Init();
while(1)
{
printf("Hello\r\n"); // Send text via UART
__delay32(30000000); // 1 second delay
}
return 0;
}
void UART_Init()
{
TRISF = 0x0005;
U1MODEbits.PDSEL = 0;
U1BRG = 194;
U1STAbits.URXISEL = 0;
IPC2bits.U1TXIP = 4;
IEC0bits.U1TXIE = 1;
IFS0bits.U1TXIF = 0;
U1MODEbits.UARTEN = 1;
U1STAbits.UTXEN = 1;
U1TXREG = uc_data;
}
void __attribute__((interrupt, no_auto_psv)) _U1TXInterrupt(void)
{
U1TXREG = uc_data;
IFS0bits.U1TXIF = 0;
}
