roboforum.ru

Технический форум по робототехнике.
Текущее время: 21 май 2025, 00:09

Часовой пояс: UTC + 4 часа




Начать новую тему Ответить на тему  [ Сообщений: 16 ]  На страницу Пред.  1, 2
Автор Сообщение
 Заголовок сообщения: Re: Указатель на порт
СообщениеДобавлено: 08 янв 2013, 00:52 
Не в сети
Аватара пользователя

Зарегистрирован: 29 сен 2012, 14:41
Сообщения: 40
прог. языки: C\C++, AutoIt, PHP
Прошу прощения за задержку.

У меня получилось, однако ). Спасибо ссылкам dccharacter.
Делаю так (девайс ATmega8, компилятор AVR-GCC):
Код:
#include <inttypes.h>
#include <avr/io.h>
#define pAddr(addr) (*(volatile uint8_t *)((addr) + 0x20))

void port_set (volatile uint8_t *port, uint8_t val){
    *port = val;
}
unsigned char port_get (volatile uint8_t *port){
    return *port;
}
void port_set_bits (volatile uint8_t *port, uint8_t mask){
    *port |= mask;
}
void port_clear_bits (volatile uint8_t *port, uint8_t mask){
    *port &=~(mask);
}

int main(){
   PORTB=0x00;
   DDRB=0xff;

   unsigned char myPort = 0x18; // PORTB

   port_set (&pAddr(myPort), 0x02);
   port_set (&pAddr(myPort), 0x01);

   port_set_bits(&pAddr(myPort), 2);

   while(1){
      ;
   }
   return 0;
}


Не сказать, что красивый вариант, но работает...


Вернуться к началу
 Профиль  
 
Показать сообщения за:  Поле сортировки  
Начать новую тему Ответить на тему  [ Сообщений: 16 ]  На страницу Пред.  1, 2

Часовой пояс: UTC + 4 часа


Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 0


Вы не можете начинать темы
Вы не можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения
Вы не можете добавлять вложения

Найти:
Перейти:  
cron
Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group
Русская поддержка phpBB
phpBB SEO