Цитата(xemul @ Dec 25 2008, 17:13)

Компилятор CAVR (и avr-gcc тоже) не поймет запись
Код
(byte & bitmask)? PORTW |= (1<<BIT): PORTW &= ~(1<<BIT);
Кроме того, CAVR не допускает объявления вида:
Код
for (unsigned char mask ...)
Цитата(xemul @ Dec 25 2008, 17:13)

Странно, что еще до интегралов не добрались...
До интегралов ща доберемся...
Код
...
#define BIT 0
#define PORTW PORTD
#define x 10
...
void transmit_byte(unsigned char const *byte, unsigned char direct){
unsigned char mask;
switch(direct){
case 0: //младший бит вперед
for (mask=1;mask;mask<<=1) {PORTW=(*byte&mask)? PORTW|(1<<BIT):PORTW&~(1<<BIT);
delay_us(x); /*или delay_ms(x); */}
break;
case 1: //старший бит вперед
for (mask=0x80;mask;mask>>=1) {PORTW=(*byte&mask)? PORTW|(1<<BIT):PORTW&~(1<<BIT);
delay_us(x);}
break;
}
}
...
transmit_byte(&byte,0); //младший бит вперед
...
transmit_byte(&byte,1); //старший бит вперед
...
Сообщение отредактировал Goodefine - Dec 25 2008, 18:28
Любой, заслуживающий внимания, опыт приобретается себе в убыток...