Технический форум

Технический форум (http://www.tehnari.ru/)
-   Микропроцессоры (http://www.tehnari.ru/f115/)
-   -   Команда mega8.h (http://www.tehnari.ru/f115/t101770/)

MiniBizon 29.03.2015 21:40

Команда mega8.h
 
Добрый день.
Я так понимаю, если в программе поставить такую ссылку
#include <mega8.h>, то можно обращаться к портам так:
PORTA.4 = 1;. Сейчас я это делаю так: PORTA |= (1<<4);.

Поставил Атмель студию 6, но в ней нет такой библиотеки, копнул в сети, что то поставил, но не работает пока. Буду копать дальше, но может быть здесь меня наставят на путь истинный быстрее. Заранее спасибо.

XELFAER 29.03.2015 22:01

Указанная библиотека используется в CodeVisionAVR. Способ написания (PORTA.4 = 1;) специфичный для данной среды разработки. Вот этот способ написания PORTA |= (1<<4);. более универсален.

MiniBizon 29.03.2015 22:17

Спасибо, уже понял.
PORTA |= (1<<4); конечно универсальный способ, но мне немного неуютно читать такой код, да и набирать каждый раз так, раздражает. Буду пробовать через макросы.

Пока не прощаюсь.

MiniBizon 29.03.2015 23:48

#define A(b,d) (d) > 0 ? (PORTA |= (1<<b)) : (PORTA &=~ (1<<b))

A(3,1);

Как то так. Может есть лучше варианты?

XELFAER 31.03.2015 12:38

Если честно, мне пока не приходилось пользоваться для этого макросами. Для читабельности все таки использование написания PORTA |= (1<<4); более удобно, особенно если код читает/изменяет другой человек.

MiniBizon 01.04.2015 00:16

DDRA &=~ (1<<4) ;
PORTA |= (1<<4);
заменил на
DA(4,0);
PA(4,1);
все это лежит в библиотеке io.h tehnosleep,
для 3их лиц вставлю комментарий, если что;
два дня пробую на вкус, пока только положительные эмоции


Часовой пояс GMT +4, время: 09:56.

Powered by vBulletin® Version 4.5.3
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.