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; }
