[AC2] Add last stuff

Signed-off-by: Tiago Garcia <tiago.rgarcia@ua.pt>
This commit is contained in:
Tiago Garcia 2024-07-17 21:40:38 +01:00
parent a1d655693f
commit 5730b98407
Signed by: TiagoRG
GPG Key ID: DFCD48E3F420DB42
10 changed files with 87 additions and 2 deletions

View File

@ -0,0 +1,21 @@
#include <detpic32.h>
typedef enum { N, E, O } parity;
void setupUART2(int baudrate, parity parity, int stopBits) {
U2BRG = (PBCLK + 8 * baudrate) / ((baudrate <= 115200 ? 16 : 4) * baudrate) - 1;
U2MODEbits.BRGH = baudrate <= 115200 ? 0 : 1;
U2MODEbits.PDSEL = parity == N ? 00 : parity == E ? 01 : 10;
U2MODEbits.STSEL = stopBits == 1 ? 0 : 1;
U2STAbits.URXEN = 1;
U2STAbits.UTXEN = 1;
U2MODEbits.ON = 1;
}
int main() {
setupUART2(115200, N, 1);
return 0;
}

View File

@ -0,0 +1,30 @@
#include <detpic32.h>
void putc(char byte) {
// wait while UTXBF == 1
while (U1STAbits.UTXBF == 1);
// Copy byte to the UxTXREG register
U1TXREG = byte;
}
int main() {
U1BRG = ((PBCLK + 8 * 115200) / (16 * 115200)) - 1;
U1MODEbits.BRGH = 0;
U1MODEbits.PDSEL = 01;
U1MODEbits.PDSEL = 0;
U1STAbits.UTXEN = 1;
U1STAbits.URXEN = 0;
U1MODEbits.ON = 1;
while (1) {
putc(0x5A);
resetCoreTimer();
while (readCoreTimer() < 200000);
}
return 0;
}

View File

@ -0,0 +1,34 @@
#include <detpic32.h>
void putc(char c) {
while (U2STAbits.UTXBF);
U2TXREG = c;
}
void putStr(char *c) {
while (*c != '\0') putc(*c++);
}
int main() {
TRISDbits.TRISD11 = 0;
U2BRG = (PBCLK + 8 * 115200) / (16 * 115200) - 1;
U2MODEbits.BRGH = 0;
U2MODEbits.PDSEL = 00;
U2MODEbits.STSEL = 0;
U2STAbits.URXEN = 1;
U2STAbits.UTXEN = 1;
U2MODEbits.ON = 1;
while (1) {
while (!U2STAbits.TRMT);
LATDbits.LATD11 = 1;
putStr("12345");
LATDbits.LATD11 = 0;
}
return 0;
}

View File

@ -36,8 +36,8 @@ void _int_(32) isr_uart2rx() {
// If OERR == 1 then reset OERR // If OERR == 1 then reset OERR
if (U2STAbits.OERR == 1) if (U2STAbits.OERR == 1)
U2STAbits.OERR = 0; U2STAbits.OERR = 0;
// Wait while URXDA == 0 if (!IFS1bits.U2RXIF)
while (U2STAbits.URXDA == 0); return;
// Save U2RXREG value // Save U2RXREG value
char c = U2RXREG; char c = U2RXREG;

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.