Ср окт 18, 2017 08:00:35
ну если вы работаете в студии, то проблемы, конечно, могут быть. я пользуюсь Eclipse и особо не горюю...Пока_без_кота писал(а):Все что позже, поставляеться каким-то набором файлов, и я незнаю, как его установить.
это скорее всего из-за того, что прототип и реализация у вас не одинаковые. небось, в прототипе-то забыли const дописать...Пока_без_кота писал(а):conflicting types for 'SendStr_P'
Ср окт 18, 2017 08:08:03
Бинго! Вы наверное и по фотографии много чего умеетеARV писал(а):... небось, в прототипе-то забыли const дописать...
Ср окт 18, 2017 08:49:12
ну дык легко указывать на те ошибки других, которые сам совершал не один раз...Пока_без_кота писал(а):Бинго!
Ср окт 18, 2017 18:58:45
const char AT[] PROGMEM = "AT\r\n";
const char OK[] PROGMEM = "OK\r\n";
const char ATE0[] PROGMEM = "ATE0\r\n";
const char ATV0[] PROGMEM = "ATV0\r\n";
// Парсинг строки ==================
char Parsing(char *string, unsigned int parsing_delay)// На входе указатель на 1 символ строки, и время парсинга строки
{
unsigned char temp;
parsing_result = 0; // Начинаем парсинг с обнуления успешного парсинга/устранения ошибки парсинга
parsing_pointer = string; // Копируем указатель на 1 сивол строки, которую будем парсить в глобальную переменную
temp = UDR; // Читаем приемник, чтобы сбросить флаг прерывания от всякого мусора, который там был до этого
UCSRB |= 1<<RXCIE; // Разрешаем прерывание по приходу байта - парсинг начался
while(parsing_result != 1) // Ждем успешного окончания, либо ошибки парсинга
{
_delay_ms(1);
parsing_delay--;
if (parsing_delay == 0) // Если время парсинга вышло
{
UCSRB &= ~(1<<RXCIE); // Запрещаем прерывание по приходу байта, чтобы не отвлекаться на всякую дрянь
return 2; // И вываливаемся из цикла с ошибкой парсинга
}
}
return 1;
}
char Parsing(char *string, unsigned int parsing_delay);
char Parsing(const char *string, unsigned int parsing_delay);
parsing_pointer = string;
const char *volatile parsing_pointer;
Ср окт 18, 2017 19:36:29
Ср окт 18, 2017 22:18:28
unsigned char buffer[20];
#define buffer_max 20; // Размерность буффера
unsigned char buffer[buffer_max];
Ср окт 18, 2017 22:40:17
Пока_без_кота писал(а):а вот так уже нет
- Код:
#define buffer_max 20; // Размерность буффера
unsigned char buffer[buffer_max];
Чт окт 19, 2017 06:36:11
привыкнуть можно, конечно, но вот что прямо-таки предельно просто, не соглашусь. если левее идентификатора переменной находится две звездочки, и между ними квалификатор[ы], то уже понять, что относится к левой, а что к правой звездочке уже не так элементарно... ну да ладно, это я уже брюзжу...Аlex писал(а):Ничего странного, всё предельно просто.
Чт окт 19, 2017 07:34:45
Пока_без_кота писал(а):Прошу прощения, но я буквально скопировал buffer_max из дефайна в размерность буффера, и все равно ошибка "имеет место быть". Я не понимаю
Заменяется Вот это На это
| | |
| | |
#define buffer_max 20; // Размерность буффера
Чт окт 19, 2017 17:01:20
Чт окт 19, 2017 17:02:48
unsigned char buffer[20;]; // ошибка
Чт окт 19, 2017 17:13:31
Чт окт 19, 2017 17:20:18
Чт окт 19, 2017 17:27:03
Чт окт 19, 2017 17:27:38
unsigned char buffer[20];
#define buffer_max 20; // Размерность буффера
unsigned char buffer[buffer_max];
Чт окт 19, 2017 17:31:28
Чт окт 19, 2017 17:54:12
unsigned char buffer[20;]; // ошибка
Чт окт 19, 2017 18:29:03
Чт окт 19, 2017 18:40:34
Чт окт 19, 2017 18:49:32