#define F_CPU 1000000UL
#include <avr/io.h>
#include <util/delay.h>
int main(void)
{
int nadal;
nadal = 0x01;
DDRB = 0x07;
PORTB = 0x18;
while(1) {
PORTB &= ~0x06;
_delay_ms(5647);
PORTB |= 0x01;
nadal = 0x01;
while(nadal) {
switch (PINB & 0x18) {
case 0x08:
PORTB |= 0x02;
PORTB &= ~0x01;
nadal = 0x00;
_delay_ms(3000);
break;
case 0x10:
PORTB |= 0x04;
PORTB &= ~0x01;
nadal = 0x00;
_delay_ms(3000);
break;
default:
break;
}
}
}
}
Napisałem taki program, jest to tester refleksu po zaświeceniu diody na PB0 kto pierwszy wciśnie swojego SWICHTA[normalnie zwarty][PB3 i PB4] zaświeci się jego dioda[PB1 i PB2].
Niestety...
Dioda PB0 zaświeca się lecz nic więcej....
P.s.
Proszę wyjaśnijcie mi jeszcze jedno:
Kiedy ta część jest tak:
switch (PINB & 0x18) {program zajmuje ~132B
Kiedy ten fragment zamienię na
switch (!(PINB & 0x18)) {Kod zajmuje tylko ~72B.
O co biega????