Альтернативный arduino монитор для отладки кода.
Выводит бинарные данные в десятичном или шестнадцатеричном виде , а не в символьном как в родном IDE.
Отправлять в порт можно значения от 0 до 255(0xFF) за одну посылку.
Отправлять можно даже если прием данных установлен на паузу.
Для отправки данных можно нажать кнопку "Send" или кнопку Enter на клавиатуре
![Нажмите на изображение для увеличения.
Название: monitor.png
Просмотров: 1470
Размер: 15.8 Кб
ID: 8159](http://compcar.ru/forum/attachment.php?attachmentid=8159&d=1518621227&thumb=1)
Написал тестовый Скетч для проверки Carduino Monitor
Отправляемые из порта значения будут влиять на яркость светодиода D13
И будут возвращатся из Arduino и отображатся в Carduino мониторе
PHP код:
#define D13_High PORTB |=B00100000
#define D13_LOW PORTB &= B11011111
volatile unsigned int tcnt2;
volatile byte pwm_time;
byte bytes[] = {10};
void setup()
{
TIMSK2 &= ~(1<<TOIE2); //разрешения прерывания по переполнению таймера/счетчика Т2
TCCR2A &= ~((1<<WGM21) | (1<<WGM20));// Режим работы таймера/счетчика
TCCR2B &= ~(1<<WGM22);// Режим работы таймера/счетчика
ASSR &= ~(1<<AS2); //Выбор источника синхронизации таймера если AS2=0 от системного генератора
tcnt2 = 251; // 16000000/31000/64=8 tcnt2=256-8=248.
TIMSK2 |= (1<<TOIE2);//Разрешение прерывания по переполнению Т2.
Serial.begin (115200);
}
void loop()
{
if (Serial.available() > 0) bytes[0] = Serial.read(); // прочитать данные
Serial.write( bytes,1); //отправить данные
}
//****************обработчик прерывания********************
ISR(TIMER2_OVF_vect)
{
TCNT2 = tcnt2;
pwm_time++;
if(bytes[0] > pwm_time) D13_High; else D13_LOW;
}