forked from LibreScanner/horus-fw
-
Notifications
You must be signed in to change notification settings - Fork 56
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
cleaned up serial completing support for non blocking tx and refactor…
…ing formatting functions into a new module 'print'
- Loading branch information
Showing
13 changed files
with
109 additions
and
118 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,58 @@ | ||
#include <math.h> | ||
#include <avr/pgmspace.h> | ||
#include "serial.h" | ||
|
||
void printString(const char *s) | ||
{ | ||
while (*s) | ||
serial_write(*s++); | ||
} | ||
|
||
// Print a string stored in PGM-memory | ||
void printPgmString(const char *s) | ||
{ | ||
char c; | ||
while ((c = pgm_read_byte_near(s++))) | ||
serial_write(c); | ||
} | ||
|
||
void printIntegerInBase(unsigned long n, unsigned long base) | ||
{ | ||
unsigned char buf[8 * sizeof(long)]; // Assumes 8-bit chars. | ||
unsigned long i = 0; | ||
|
||
if (n == 0) { | ||
serial_write('0'); | ||
return; | ||
} | ||
|
||
while (n > 0) { | ||
buf[i++] = n % base; | ||
n /= base; | ||
} | ||
|
||
for (; i > 0; i--) | ||
serial_write(buf[i - 1] < 10 ? | ||
'0' + buf[i - 1] : | ||
'A' + buf[i - 1] - 10); | ||
} | ||
|
||
void printInteger(long n) | ||
{ | ||
if (n < 0) { | ||
serial_write('-'); | ||
n = -n; | ||
} | ||
|
||
printIntegerInBase(n, 10); | ||
} | ||
|
||
void printFloat(double n) | ||
{ | ||
double integer_part, fractional_part; | ||
fractional_part = modf(n, &integer_part); | ||
printInteger(integer_part); | ||
serial_write('.'); | ||
printInteger(round(fractional_part*1000)); | ||
} | ||
|
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,14 @@ | ||
#ifndef print_h | ||
#define print_h | ||
|
||
void printNewline(void); | ||
void printString(const char *s); | ||
void printPgmString(const char *s); | ||
void printInteger(long n); | ||
void printHex(unsigned long n); | ||
void printOctal(unsigned long n); | ||
void printBinary(unsigned long n); | ||
void printIntegerInBase(unsigned long n, unsigned long base); | ||
void printFloat(double n); | ||
|
||
#endif |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters