C AVR переменная PORTB и ее адрес

Вопросы настройки, программирования, прошивки микроконтроллеров и микросхем программируемой логики
Закрыто
kuzya_vl
Родился
Сообщения: 1
Зарегистрирован: Сб дек 25, 2010 17:13:37

C AVR переменная PORTB и ее адрес

Сообщение kuzya_vl »

В языке Си AVR много переменных для обращения к адресам.
Например, PORTB читает/пишет в порт B, UDDR обращение к регистрам порта и т.д.
Но адреса регистров вещь не постоянная, она меняется от чипа к чипу.
Как программа знает по какому физическому адресу обращаться при работе с переменной PORTB?
Реклама
Аватара пользователя
Meteor
Друг Кота
Сообщения: 3961
Зарегистрирован: Пн июл 13, 2009 14:37:39
Откуда: Московская область, наукоград.....
Контактная информация:

Re: C AVR переменная PORTB и ее адрес

Сообщение Meteor »

А хидеры всяческие с объявллением регистров по Вашему просто так прилагаются?
Ведь одна из первых строк .include "*.h"
Загружая на вход компьютера "мусор", на выходе получим "мусор^32".
PS. Не работаю с: Proteus, Multisim, EWB, Micro-Cap... не спрашивайте даже
Реклама
a_skr
Вымогатель припоя
Сообщения: 630
Зарегистрирован: Пн июн 14, 2010 13:07:29
Откуда: Жуковский

Re: C AVR переменная PORTB и ее адрес

Сообщение a_skr »

Ну или в makefile можно задавать, для WinAVR. например:

MCU = attiny25

а дальше при подключении хэдера avr/io.h к основной программе

#include <avr/io.h>

в нем самом происходит подключение нужного хэдера, в котором PORTB и определен.
и только это не переменная, а некое определение адреса регистра

#define PORTB _SFR_IO8(0x18)

которое определено уже в другом хэдере

#define _SFR_IO8(io_addr) ((io_addr) + __SFR_OFFSET)

...
Закрыто

Вернуться в «Микроконтроллеры и ПЛИС»