Moved firmware to subfoler firmware

This commit is contained in:
Yury Shuvakin
2023-03-29 19:11:33 +03:00
parent fb819e50a1
commit 4561bcc255
231 changed files with 46 additions and 2 deletions

View File

@@ -0,0 +1,34 @@
#include "driverSWUART2.h"
libRingBufferTypedef *driverSWUART2OutputBuffer;
void driverSWUART2Init(uint32_t baudRate) {
driverSWUART2OutputBuffer = libRingBufferNew(sizeof(uint8_t),RINGBUFFERSIZE); // Make new output buffer
if(!driverSWUART2OutputBuffer) // Check if buffer pointer is generated
while(true); // Out of memory error
driverHWUART2Init(baudRate); // Initialize serial port and pass function that should be called when a byte is received
};
char driverSWUART2PutCharInOutputBuffer(char character, FILE *stream) {
// TODO: If buffer is full, first send a character out, then place new char. This should however never happen
if(!driverSWUART2OutputBuffer->isFull(driverSWUART2OutputBuffer)) {
driverSWUART2OutputBuffer->add(driverSWUART2OutputBuffer,&character);
}else{
driverSWUART2Task();
driverSWUART2OutputBuffer->add(driverSWUART2OutputBuffer,&character);
}
return 0;
};
bool driverSWUART2Task(void) {
char outputChar;
if(!driverSWUART2OutputBuffer->isEmpty(driverSWUART2OutputBuffer)){ // Check if there is data in the ouput buffer
driverSWUART2OutputBuffer->pull(driverSWUART2OutputBuffer,&outputChar); // Pull the data from ouput buffer
driverHWUART2SendChar(outputChar); // And send it to the uart
}
return !driverSWUART2OutputBuffer->isEmpty(driverSWUART2OutputBuffer);
};