Помощь - Поиск - Пользователи - Календарь
Полная версия этой страницы: как отправить 1 байт в вывод порта в VinAvr&
Форум разработчиков электроники ELECTRONIX.ru > Сайт и форум > В помощь начинающему > MCS51, AVR, PIC, STM8, 8bit
scme
Всем добрый день.
Не подскажет ли кто как отправить байт в вывод порта в VinAVR?
есть программа в CodeVision AVR:

Код
#define IN PORTA.7;
#define CLOCK PORTA.6;
#define BYTES 6;
unsigned char chars[BYTES] ={0,0,0,0,0,0,};

void push_byte(unsigned char _byte){ //Отправить 1 байт в SERIAL_IN
unsigned char j;
for(j=0;j<8;j++){
CLOCK = 0;
IN = 1 & _byte;
_byte = _byte>>1;
CLOCK = 1;
}
}

Нужно сделать то самое , но в VINAVR?
c CLOCK я разобрался, делаю PORTA &= ~(_BV(PA6)) (0), PORTA |= _BV(PA6) (1)
а отправить _byte в PORTA.7 не получается.

С уважением ТОМ
smalcom
>> а отправить _byte в PORTA.7 не получается.
ну так там аналогичная ситуация.
ARV
Код
void push_byte(unsigned char _byte){ //Отправить 1 байт в SERIAL_IN
   for(uint8_t mask=1;mask;mask <<=1){
      //CLOCK = 0;
     PORTA &= ~_BV(PA6);
     if (_byte & mask)
        PORTA |= _BV(PA7);
     else
        PORTA &= ~_BV(PA7);
      //CLOCK = 1;
      PORTA |= _BV(PA6);
   }
}
вы хоть бы из уважения к разработчикам компилятора правильно написали бы название WinAVR - а то в заголовке темы такой позор
Для просмотра полной версии этой страницы, пожалуйста, пройдите по ссылке.
Invision Power Board © 2001-2025 Invision Power Services, Inc.