Подскажите, пожалуйста, как объединить код, с помощью какой функции? Заранее большое спасибо.
На основе ATmga8A собрана схема: 4 кнопки через резисторы подсоединены к 4 портам В на вход, на выходе D есть семисегментный индикатор. При не нажатой кнопке горят все сегменты, при нажатии первой кнопки выводится число 0, второй - 1, третьей - 2, четвертой - 3. По отдельности код работает исправно, но как объединить, не знаю.
Код для вывода числа 2 с помощью третьей кнопки:
#include <avr/io.h>
#define F_CPU 8000000L
#include <avr/io.h>
//#include <util/delay.h>
int main(void)
{
unsigned char butcount=0;
DDRD = 0xFF;
DDRB = 0x00;
PORTD = 0b00000000; // 1 2 3 4 5 6 7 8
//PORTB = 0b00000001;// 0b|dp|g|f|e|d|c|b|a
//PORTB = 0b00000010;
PORTB = 0b00000100;
//PORTB = 0b00001111;
//PORTB = 0b00001111; Запитаны 4 ноги порта В, чтобы 4 кнопки реагировали.
PORTD = 0b0111111; //0
PORTD = 0b0000110; //1
PORTD = 0b1011011; //2
PORTD = 0b1001111; //3
PORTD = 0b1111111; //8
while (1)
{
if (!(PINB&0b0111111))
{
PORTD = 0b10100100;
}
else
{
PORTD = 0b00000000;
}
}
}



