Loading include/arch/arduino-nano/driver/stdout.h +2 −0 Original line number Diff line number Diff line Loading @@ -6,6 +6,7 @@ #ifndef STANDARDOUTPUT_H #define STANDARDOUTPUT_H #include <avr/pgmspace.h> #include "object/outputstream.h" class StandardOutput : public OutputStream { Loading @@ -17,6 +18,7 @@ class StandardOutput : public OutputStream { void setup(); virtual void put(char c) override; OutputStream & pprint(const char *text); }; extern StandardOutput kout; Loading src/arch/arduino-nano/driver/stdout.cc +10 −1 Original line number Diff line number Diff line Loading @@ -5,7 +5,6 @@ */ #include "driver/stdout.h" #include <avr/io.h> #include <avr/interrupt.h> #ifndef BAUD #define BAUD 9600UL Loading @@ -28,6 +27,16 @@ void StandardOutput::setup() UCSR0C = _BV(UCSZ01) | _BV(UCSZ00); } OutputStream & StandardOutput::pprint(const char *text) { PGM_P p = reinterpret_cast<PGM_P>(text); char c; while ((c = pgm_read_byte(p++))) { put(c); } return *this; } void StandardOutput::put(char c) { while (!(UCSR0A & _BV(UDRE0))); Loading Loading
include/arch/arduino-nano/driver/stdout.h +2 −0 Original line number Diff line number Diff line Loading @@ -6,6 +6,7 @@ #ifndef STANDARDOUTPUT_H #define STANDARDOUTPUT_H #include <avr/pgmspace.h> #include "object/outputstream.h" class StandardOutput : public OutputStream { Loading @@ -17,6 +18,7 @@ class StandardOutput : public OutputStream { void setup(); virtual void put(char c) override; OutputStream & pprint(const char *text); }; extern StandardOutput kout; Loading
src/arch/arduino-nano/driver/stdout.cc +10 −1 Original line number Diff line number Diff line Loading @@ -5,7 +5,6 @@ */ #include "driver/stdout.h" #include <avr/io.h> #include <avr/interrupt.h> #ifndef BAUD #define BAUD 9600UL Loading @@ -28,6 +27,16 @@ void StandardOutput::setup() UCSR0C = _BV(UCSZ01) | _BV(UCSZ00); } OutputStream & StandardOutput::pprint(const char *text) { PGM_P p = reinterpret_cast<PGM_P>(text); char c; while ((c = pgm_read_byte(p++))) { put(c); } return *this; } void StandardOutput::put(char c) { while (!(UCSR0A & _BV(UDRE0))); Loading