Zawsze cytujmy wiadomości na które odpowiadamy... |
Przez przypadek chyba znalazłem sposób. Znaczniki code nie działają, ale jak wstawiłem kod w trybie edycji własnego postu, to już go nie poszadkował. Zob. mój post wyżej. Spróbuję tą matodą wkleić coś dłuższego. /* *ADR2200 Antenna Switch based on example StatusMonitor * * Displays formatted, dynamic, real-time Arduino status information * using BasicTerm. * * It responds to the following input commands: * ' ' (space): Toggle LED * '\f' (Ctrl-L): Redraw screen */ #include <BasicTerm.h> BasicTerm term(&Serial); //debuging LED #define LED 13 //Relays outputs #define REL1 2 #define REL2 3 #define REL3 4 #define REL4 5 #define REL5 6 #define REL6 7 #define REL5 8 #define REL6 9 uint32_t now; uint32_t last; void setup(void) { Serial.begin(9600); pinMode(LED, OUTPUT); pinMode(REL1, OUTPUT); pinMode(REL2, OUTPUT); pinMode(REL3, OUTPUT); pinMode(REL4, OUTPUT); pinMode(REL5, OUTPUT); pinMode(REL6, OUTPUT); pinMode(REL7, OUTPUT); pinMode(REL8, OUTPUT); uint8_t i; /* for(i = A0; i <= A5; i++) { pinMode(i, INPUT); } for(i = 2; i <= 12; i++) { pinMode(i, INPUT); } */ digitalWrite(LED, LOW); digitalWrite(REL1, LOW); digitalWrite(REL2, LOW); digitalWrite(REL3, LOW); digitalWrite(REL4, LOW); digitalWrite(REL5, LOW); digitalWrite(REL6, LOW); digitalWrite(REL7, LOW); digitalWrite(REL8, LOW); term.init(); term.cls(); term.show_cursor(false); now = millis(); } #define DIGITAL_ROW 3 #define ANALOG_ROW 7 void loop(void) { uint8_t i = 0; uint16_t key; last = now; now = millis(); term.position(0, 0); term.set_attribute(BT_NORMAL); term.set_attribute(BT_BOLD); term.print(F("Arduino Status Monitor\t")); term.set_attribute(BT_NORMAL); term.print(F("Current millis: ")); term.print(now); term.print(F("\tmillis since last loop: ")); term.set_attribute(BT_UNDERLINE); term.print(now - last); term.set_attribute(BT_NORMAL); term.position(1, 0); term.print(F("LED ")); term.set_color(BT_GREEN, BT_BLACK); if(digitalRead(LED) == HIGH) { term.set_attribute(BT_BOLD | BT_UNDERLINE); term.print(F("ON ")); } else { term.print(F("OFF")); } term.set_attribute(BT_NORMAL); term.position(DIGITAL_ROW, 0); term.print(F("Digital Readings")); for(i = 0; i <= 13; i++) { term.position(DIGITAL_ROW + 1, (i)*6); term.set_attribute(BT_NORMAL); term.print("DIN"); term.print(i); term.set_color(BT_RED, BT_BLACK); term.position(DIGITAL_ROW + 2, (i)*6); term.print(digitalRead(i)); } term.set_attribute(BT_NORMAL); term.position(ANALOG_ROW, 0); term.print(F("Analog Readings")); for(i = A0; i <= A5; i++) { term.position(ANALOG_ROW + 1, (i-A0)*6); term.set_attribute(BT_NORMAL); term.print(F("AIN")); term.print(i - A0); term.set_color(BT_MAGENTA, BT_BLACK); term.position(ANALOG_ROW + 2, (i-A0)*6); term.print(analogRead(i)); } key = term.get_key(); switch(key) { case ' ': /* Spacebar: toggle LED */ digitalWrite(LED, !digitalRead(LED)); break; case '\f': /* Ctrl-L: redraw screen */ term.cls(); break; } } |