Сб окт 07, 2023 13:23:21
i = PINA;
switch(PINA, i){
......
#include <avr/io.h>
int main(void)
{
DDRA = 0x00;
PORTA = 0xFF;
while (1)
{
if (bit_is_clear(PINA, 0))
{ NUM = 'A';}
else if (bit_is_clear(PINA, 1))
{NUM = 'B';}
else if (bit_is_clear(PINA, 2))
{NUM = 'C';}
else if (bit_is_clear(PINA, 3))
{NUM = 'D';}
else if (bit_is_clear(PINA, 4))
{NUM = 'E';}
else if (bit_is_clear(PINA, 5))
{NUM = 'F';}
else if (bit_is_clear(PINA, 6))
{NUM = 'G';}
else if (bit_is_clear(PINA, 7))
{NUM = 'K';}
else { NUM = 0;}
if (bit_is_clear(PINB, 0))
{NUM = 'L';}
else if (bit_is_clear(PINB, 1))
{NUM = 'M';}
else if (bit_is_clear(PINB, 2))
{NUM = 'N';}
else { NUM = 0;}
}
}
Сб окт 07, 2023 14:01:53
switch(expression) {
case x:
// code block
break;
case y:
// code block
break;
default:
// code block
}
uint16_t st = ((0b00000111 & PINB) << 8) | PINA;
switch (st) {
case 0b0000011111111110: NUM = 'A'; break;
case 0b0000011111111101: NUM = 'B'; break;
...
case 0b0000001111111111: NUM = 'N'; break;
default: NUM = '0';
}
Сб окт 07, 2023 15:49:48
Сб окт 07, 2023 19:23:21