Проверка кода.
- Войдите на сайт для отправки комментариев
Чт, 18/08/2016 - 10:26
Добрый день.
Возникла ситуация. Необходимо передать данные в ком порт устройства, после задержки на инициализацию.
Была написанна программа, но что-то не заладилось.
Требуется 6 раз отослать по 2 пакета ( pas, pas1), потом 1 раз отослать ok,ok1. Если потребуется то отсылается и пакет skip.
Все пакеты по отдельности отправляются нормально, но вместе программа отрабатывает только первый цикл. почему-то отсылает 2 раза заголовок пакетов (0хАА) и стопится.
Где может быть косяк?
АТмега8А, внутренний 8МГц.
void setup() { Serial.begin(115200); } void loop() { char pas[]={0xAA,0x73,0x01,0x92,0x01,0x6C,0xCC,0x33,0xC3,0x3C,'\0'}; // Первый пакет данных 0 char pas1[]={0xAA,0x72,0x01,0x92,0x01,0x6C,0xCC,0x33,0xC3,0x3C,'\0'}; // Второй пакет данных 0 char ok[]={0xAA,0x73,0x01,0xE5,0x01,0xAF,0xCC,0x33,0xC3,0x3C,'\0'}; // Первый пакет данных 1 char ok1[]={0xAA,0x72,0x01,0xE5,0x01,0xAF,0xCC,0x33,0xC3,0x3C,'\0'}; // Второй пакет данных 1 char skip[]={0xAA,0x70,0x0F,0xCC,0x33,0xC3,0x3C,'\0'}; int i=0, j=0; delay (13500); for (int i=0; i<6; i++){ // отправка пакета 0 , 6 раз for (int j=0; j<10; j++){ // побайтная отправка первого пакета 0 Serial.write(pas[j]); } delay(150); //задержка 150 мс for (int j=0; j<10; j++){ // побайтная отправка второго пакета 0 Serial.write(pas1[j]); } Serial.flush(); } delay(100); for (int i=0; i<1; i++){ for (int j=0; j<10; j++);{ Serial.write(ok[j]); // побайтная отправка 1 пакета 1 } delay(100); for (int j=0; j<10; j++);{ Serial.write(ok1[j]); // побайтная отправка 2 пакета 1 } } delay(100); //for (int i =0; i<7; i++){ // Serial.write(skip[i]); // } while(1); }
Это, как я понимаю кусочек программы? Или она работает у Вас именно в таком виде? Т.е. кратинка с результатами точно от этой программы безо всяких изменений?
Строки 24 и 29 - чушь. Там точка с запятой ненужная. Это как минимум, чего заметил.
Строки 24 и 29 - чушь. Там точка с запятой ненужная. Это как минимум, чего заметил.
А, так потому такая хрень и происходит - как раз два байта (первые) передаются, и больше ничего. Отлично! А я не заметил этого.