atmega128 helperror: ожидается ';' перед числовой константой - PullRequest
0 голосов
/ 05 ноября 2018

Почему это происходит? Я не вижу никаких проблем. Я не могу понять, что исправить. Помоги мне! ../1105-1.c: В функции 'E_Pulse': ../1105-1.c:23:2: ошибка: ожидается ';' перед числовой константой ../1105-1.c:25:2: ошибка: ожидается ';' перед числовой константой

Эти ошибки для каждой функции.

#include<avr/io.h>
#include<util/delay.h>

#define TLCD_RS PORTB.0 
#define TLCD_RW PORTB.1 
#define TLCD_E PORTB.2 
#define TLCD_EN{TLCD_E = 0 ; TLCD_E = 1 ; }
#define DATA PORTC 

void Port_Init(void); 
void E_Pulse(void);
void Func_Set(void);
void TLCD_DATA(unsigned char);
void Init_LCD(void);
void Port_Init(void)
{
DDRB = 0xff;
DDRC = 0xff;
}
void E_Pulse(void)
{
TLCD_E = 1;
_delay_ms(5);
TLCD_E = 0;
}
void TLCD_DATA(unsigned char data)
{
DATA = data;
TLCD_EN;
}
void Init_LCD(void)
{
TLCD_E = 0;
_delay_ms(15);
Func_Set();
_delay_ms(10);
Func_Set();
_delay_ms(150);
Func_Set();
TLCD_DATA(0x0f);
E_Pulse();
TLCD_DATA(0x06);
E_Pulse();
TLCD_DATA(0x01);
E_Pulse();
}
void lcd_char(char s)
{
TLCD_RS = 1;
TLCD_DATA(s);
E_Pulse();
}
void main(void)
{
Port_Init();
Init_LCD();
    lcd_char('1');
    lcd_char('2');
    lcd_char('3');
    lcd_char('4');
while(1);
}

1 Ответ

0 голосов
/ 05 ноября 2018

Получение одной и той же ошибки в строках 23 и 25 является серьезной подсказкой.

Обычно номер строки ошибки относится к строке после строки с ошибкой, потому что именно здесь все становится явно не так для компилятора.

Воспроизведение этой функции и расширение макроса дает следующий код

void E_Pulse(void)
{
  PORTB.2 = 1;
  _delay_ms(5);
  PORTB.2 = 0;
}

PORTB.2 - неверный код, он выглядит как доступ к структуре, но элементы структуры не могут быть числами. Таким образом, компилятор запутывается и выдает ошибки, точка с запятой немного вводит в заблуждение, как правило, лучше угадывает.

Это не способ управления выводами GPIO с помощью системы AVR. Я привел ссылку на разумный учебник ниже.

http://www.elecrom.com/avr-tutorial-2-avr-input-output/

...