Написал вот такую короткую программку на высвечивании «1», «2», или «3» при нажатии на кнопки «1», «2», или «3»подключенные к ногам В0, В1, В2 порта «В». Вот текст:
#define F_CPU 8000000L
#include <avr/io.h>
#include <util/delay.h>
segchar (unsigned char seg) //Объявление функции "segchar" c переменной seg
{
if (PINB=0b11111110) // Проверка условия содержимого порта "В"
{
seg = 1; // Если порт "В"=11111110 то переменная seg=1
}
if (PINB=0b11111101) // Проверка условия содержимого порта "В"
{
seg = 2; // Если порт "В"=11111101 то переменная seg=2
}
if (PINB=0b11111011) // Проверка условия содержимого порта "В"
{
seg = 3; // Если порт "В"=11111011 то переменная seg=3 }
}
//---------------------------------------------
int main(void) // Главный цикл
{
DDRD = 0xFF; // Установка порта на выход
DDRB = 0x00; // Установка порта на вход
PORTD = 0b00000000; // Установка содержимого порта "D" в "00000000"
PORTB = 0b00000000; // Установка содержимого порта "B" в "00000000"
seg = 0; // Присвоение переменной "seg" значения "0"
while(1) // Начало беконечного цикла
{
if seg=1; // Проверка условия если seg=1
{
PORTD = 0b11111001; // порт "D" в "11111001", "1" 7-сегментн.
}
if seg=2; // Проверка условия если seg=2
{
PORTD = 0b10100100; // порт "D" в "10100100" "2" 7-сегментн.
}
if seg=3; // Проверка условия если seg =3
{
PORTD = 10110000; // порт "D" в "10110000" "3" 7-сегментн.
}
segchar(seg); // Переход на функцию "segchar"
_delay_ms(500); // Задержка пол секунды
}
}
При попытке скомпилировать, процесс идет с ошибками, компиляция не удается и выводятся вот твкие сообщения:
Warning 1 #warning "Compiler optimizations disabled; functions from <util/delay.h> won't work as
designed" c:\program files\atmel\avr studio 5.0\avr toolchain\bin\../lib/gcc/avr/4.5.1/../../../../avr/include/util/delay.h 94 3 test09
Warning 2 return type defaults to 'int' ......\test09.c 9 1 test09
Warning 3 suggest parentheses around assignment used as truth value ......\test09.c 11 3 test09
Warning 4 suggest parentheses around assignment used as truth value ....\test09.c 15 3 test09
Warning 5 suggest parentheses around assignment used as truth value .....\test09.c 19 3 test09
Error 6 'seg' undeclared (first use in this function) .....\test09.c 33 2 test09
Error 7 each undeclared identifier is reported only once for each function it appears in ...\test09.c 33 2 test09
Error 8 expected '(' before 'seg' .......\test09.c 36 6 test09
Error 9 expected '(' before 'seg' ........\test09.c 40 6 test09
Error 10 expected '(' before 'seg' ........\test09.c 44 6 test09
Warning 11 large integer implicitly truncated to unsigned type .......\test09.c 46 3 test09
Warning 12 control reaches end of non-void function ......\test09\test09.c 23 1 test09
Прошу не пинать больно ногами, я только учусь.
Хотел поправить - не получается, плоха читаемость текста программы, почему-то удаляются все множественные пробелы.


