Dingo (19.08.2013 10:29, просмотров: 3559)
Можно в AVR-GCC вычислять адрес для in/out? Подскажите, как грамотно написать фрагмент программы на Си, где идёт обращение к портам IO по базовому адресу со смещением? Чтобы понятней было, напишу - как-то так :
Код:
#define BASEPORT PINB
IN (BASEPORT+Shift), A
OUT A, (BASEPORT+Shift)
Чушь конечно, но думаю понятней вопрос.
Логичней всего это сделать через указатель - их допустимо вычислять , но как объявить указатель на _SFR_IO8, а не RAM или PROGMEM ?... Или только через ASM-вставку?
Ну и попутно - можно как-либо на Си (AVR-GCC) объявить указатель на функцию, и как потом функцию по указателю вызывать?