Помощь - Поиск - Пользователи - Календарь
Полная версия этой страницы: программирование МК MEGA 8515 на С++
Форум разработчиков электроники ELECTRONIX.ru > Сайт и форум > В помощь начинающему > MCS51, AVR, PIC, STM8, 8bit
Sky_light
CODE
#include <avr/io.h> //подключение библиотеки ввода-вывода
#include <util/delay.h> //подключение библиотеки задержек

//============Объявление глобальных функций и переменных=======


void UART_Translate (unsigned char data) // Передача данных
{
while (!(USRA & (1<<5))); //UDRE
UDR = data;//запись переменной data в регистр UDR
}

unsigned char UART_Reseive (void) //Прием данных
{
unsigned char result;
while (!(USRA & (1<<7))); //проверка бита RXC регистра USRA
result = UDR; //result присваивается значение UDR
return result;
}


//==============ОСНОВНАЯ ПРОГРАММА===================
int main(void) //Начало основной программы
{
unsigned char a,b,c,i; //объявление переменных

PORTA=0b00001111; //выводы 0,1,2,3 порта А
DDRA=0b00000000; //все выводы порта А - входы

PORTB=0b11111111; //выводы 0,1 порта В
DDRB=0b11111111; //все выводы орта В - выходы

PORTC=0b00000100; //вывод 3,4,5,6,7 порта С
DDRC=0b00000000; //все выводы порта С - выводы

PORTD=0b10000010; //вывод 5 порта D
DDRD=0b00000010; //все выводы порта D - входы,кроме 1

UCSRA=0x00; //установка параметров связи 8n1
UCSRB=0x18; //включение приемника и передатчика в USART
UCSRC=0x06;
UBRRH=0x00;//режим UART асинхронный
UBRRL=0x5F; //скорость обмена передачи в порту через UART - 1200 бод.

UART_Translate('O');
UART_Translate('N');
UART_Translate('M');
UART_Translate('A');
UART_Translate('\n');UART_Translate('\r'); //заставка


While(1) //бесконечный цикл
{
a=USART_Receive(); //принимаем данные
if(a=='i'); //если символ прошел переходим ко 2-му

{
b=UART_Receive(); //принимаем данные
if(b=='j'); //если символ прошел переходим к 3-му

{
c=UART_Receive(); //принимаем данные
if(c=='n');
{
UART_Translate('K');UART_Translate('u');UART_Translate('r');
UART_Translate('s');UART_Translate('о');UART_Translate('v');
UART_Translate('a');UART_Translate('y');UART_Translate('a');
UART_Translate('n');UART_Translate('r');UART_Translate('a');
UART_Translate('b');UART_Translate('о');UART_Translate('t');
UART_Translate('a');UART_Translate('r');UART_Translate('k');
UART_Translate('y');UART_Translate('r');UART_Translate('s');
UART_Translate('a');UART_Translate('n');UART_Translate('t');
UART_Translate('F');UART_Translate('i');UART_Translate('l');
UART_Translate('i');UART_Translate('n');UART_Translate('o');
UART_Translate('v');UART_Translate('a');UART_Translate('E');
UART_Translate('l');UART_Translate('e');UART_Translate('n');
UART_Translate('a');UART_Translate('n');UART_Translate('r') //ответ на строку инициализации//

for(i=0,i<=5,i++);
{
_delay_ms(100); //требуемая задержка в мс
PORTD=0b10000000; //включаем звук on
_delay_ms(100); //требуемая задержка в мс
PORTD=0b00000000; //выключаем звук off
}
}
}
}
}
}
mempfis_
Точки с запятой после if не нужны.

Не верно
Код
if(.....);
{
..............
}


Надо
Код
if(.....)
{
................
}
DpInRock
Запустите компилятор и он вам укажет на все ошибки.
после for также не нужны знаки препинания.
XVR
Цитата(DpInRock @ Dec 19 2010, 03:31) *
Запустите компилятор и он вам укажет на все ошибки.
Увы не все - точки с запятой после if и for являются верной синтасической конструкцией, и компилятор их съест и не поперхнется rolleyes.gif Результат увы будет не тот, на который рассчитывал автор
Цитата
после for также не нужны знаки препинания.
Угу, и while надо писать с маленькой буквы
DpInRock
Зато ;{...} может и не явится верной. Не пробовал, правда.
XVR
Цитата(DpInRock @ Dec 20 2010, 13:40) *
Зато ;{...} может и не явится верной.
С чего бы вдруг? 2 последовательных операции (stmt) - один все, что до ';' (или просто пустой оператор - ';'), второй - составной оператор (все, что в {} ). Вполне нормальная синтаксическая конструкция С/С++

Для просмотра полной версии этой страницы, пожалуйста, пройдите по ссылке.
Invision Power Board © 2001-2025 Invision Power Services, Inc.