Помогите перести код в понятный Ардуино
- Войдите на сайт для отправки комментариев
Пнд, 30/05/2016 - 12:40
Всем привет!
Такая проблема, есть код написанный в CodevisionAVR. Помогите пожалуйста перевести его в код понятный для Ардуино. Я только только начинаю знакомиться с программированием.
Вот сам код:
unsigned int text_parametr = 0xFFE0; // цвет параметров
char convert[32];
#define BUFFER_SIZE 200
unsigned char buffer[BUFFER_SIZE]; // приемный буффер
flash unsigned char startCommunication[] = {0x81,0x10,0xf1,0x81,0x03};
flash unsigned char readDataByLocalIdentifier_RLI_ASS[] = {0x82,0x10,0xF1,0x21,0x01,0xA5};
flash unsigned char readDTCByStatus[] = {0x84,0x10,0xF1,0x18,0x00,0x00,0x00,0x9D};
flash unsigned char clearDiagnosticInformation[] = {0x83,0x10,0xf1,0x14,0x00,0x00,0x98};
volatile unsigned char counter;
if (StartSend == 1) {
SendCommand(readDTCByStatus,8);
StartSend = 0;
}
else { // !!!!!!!!!!! ответ может быть произвольной длины !!!!!!!!!!!!!!
if (counter>12) { // парсим запрос + ответ
unsigned char cislo_oshibok = 0;
unsigned char otvet_length = 0;
cislo_oshibok = buffer[12]; // смотрим число ошибок
otvet_length = 13+(3*cislo_oshibok); // длинна ответа
if (counter > otvet_length) { // ждем пока примутся все ошибки
unsigned char i = 0;
unsigned int crc = 0;
for (i=8;i<otvet_length;i++) {
crc = crc + buffer[i];
}
i = crc & 0xFF; // берем 2 младших разряда
if ( buffer[otvet_length] == i ) { // проверяем контрольную сумму
sprintf(convert,"%d",cislo_oshibok);
put_string(150,5,convert,text_parametr,1);
if (cislo_oshibok != 0) {
for (i=0;i < cislo_oshibok;i++) {
sprintf(convert,"Р%02x%02x",buffer[(13+(i*3))],buffer[(14+(i*3))]);
if (i < 6) {
put_string(5,25+(i*15),convert,0xAFE0,1);
}
else if (i>=6 && i<12) {
put_string(65,25+((i-6)*15),convert,0xAFE0,1);
}
else if (i>=12 && i<18) {
put_string(125,25+((i-12)*15),convert,0xAFE0,1);
}
}
}
}
counter = 0;
Что именно не получается? "Перевести код" - это не ответ, конкретно, что именно не получается. Либо это тема в "Ищу исполнителя".
Ты привел только кусок кода, вырезку из середины. Как из крыла сделать птицу? Вряд ли кто скажет.
Ну например ругается на put_string говорит нет такой команды. как эти строчки привести в понятный для дуино формат?
Ну вот уже проще. Правда CodeVisionAVR у меня нет. Но это не так важно, как отсутвие полного исходника, где есть все заголовочные файлы, по которым можно хотя бы понять, что это за функция, put_string. Судя по виду, вывод на графический дисплей. В таком случае есть несколько вариантов. Найти подобную библиотеку для Ардуино. Собрать существующую библиотеку под Ардуино (попробовать). Возможно кто-то знает, я больше ничем не могу помочь.