mirror of
https://github.com/felis/USB_Host_Shield_2.0.git
synced 2024-03-22 11:31:26 +01:00
Added ability to print negative numbers
This commit is contained in:
parent
4e10fd3046
commit
8f7d93896e
2 changed files with 39 additions and 12 deletions
35
SPP.cpp
35
SPP.cpp
|
@ -783,7 +783,12 @@ void SPP::println(void) {
|
|||
}
|
||||
|
||||
/* These must be used to print numbers */
|
||||
void SPP::printNumber(uint16_t n) {
|
||||
void SPP::printNumber(int16_t n) {
|
||||
bool negative = false;
|
||||
if(n < 0) {
|
||||
negative = true;
|
||||
n = -n;
|
||||
}
|
||||
uint16_t temp = n;
|
||||
uint8_t digits = 0;
|
||||
while (temp) {
|
||||
|
@ -793,15 +798,27 @@ void SPP::printNumber(uint16_t n) {
|
|||
if(digits == 0)
|
||||
print("0");
|
||||
else {
|
||||
uint8_t buf[digits];
|
||||
uint8_t buf[digits+1]; // Add one extra in case it is negative
|
||||
for(uint8_t i = 1; i < digits+1; i++) {
|
||||
if(negative)
|
||||
buf[digits-i+1] = n%10 + '0'; // Get number and convert to ASCII Character
|
||||
else
|
||||
buf[digits-i] = n%10 + '0'; // Get number and convert to ASCII Character
|
||||
n /= 10;
|
||||
}
|
||||
if(negative) {
|
||||
buf[0] = '-';
|
||||
print(buf,digits+1);
|
||||
} else
|
||||
print(buf,digits);
|
||||
}
|
||||
}
|
||||
void SPP::printNumberln(uint16_t n) {
|
||||
void SPP::printNumberln(int16_t n) {
|
||||
bool negative = false;
|
||||
if(n < 0) {
|
||||
negative = true;
|
||||
n = -n;
|
||||
}
|
||||
uint16_t temp = n;
|
||||
uint8_t digits = 0;
|
||||
while (temp) {
|
||||
|
@ -811,16 +828,26 @@ void SPP::printNumberln(uint16_t n) {
|
|||
if(digits == 0)
|
||||
print("0\r\n");
|
||||
else {
|
||||
uint8_t buf[digits+2];
|
||||
uint8_t buf[digits+3]; // Add one extra in case it is negative
|
||||
for(uint8_t i = 1; i < digits+1; i++) {
|
||||
if(negative)
|
||||
buf[digits-i+1] = n%10 + '0'; // Get number and convert to ASCII Character
|
||||
else
|
||||
buf[digits-i] = n%10 + '0'; // Get number and convert to ASCII Character
|
||||
n /= 10;
|
||||
}
|
||||
if(negative) {
|
||||
buf[0] = '-';
|
||||
buf[digits+1] = '\r';
|
||||
buf[digits+2] = '\n';
|
||||
print(buf,digits+3);
|
||||
} else {
|
||||
buf[digits] = '\r';
|
||||
buf[digits+1] = '\n';
|
||||
print(buf,digits+2);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
uint8_t SPP::read() {
|
||||
if(rfcommAvailable == 0) // Don't read if there is nothing in the buffer
|
||||
|
|
4
SPP.h
4
SPP.h
|
@ -115,8 +115,8 @@ public:
|
|||
void println(const __FlashStringHelper *); // Include newline and carriage return
|
||||
void println(void); // Use this to print newline and carriage return
|
||||
|
||||
void printNumber(uint16_t n); // These must be used to print numbers
|
||||
void printNumberln(uint16_t n); // This will include newline and carriage return
|
||||
void printNumber(int16_t n); // These must be used to print numbers
|
||||
void printNumberln(int16_t n); // This will include newline and carriage return
|
||||
|
||||
uint8_t available() { return rfcommAvailable; }; // Get the bytes waiting to be read
|
||||
uint8_t read(); // Used to read the buffer
|
||||
|
|
Loading…
Reference in a new issue