Страница 1 из 1

Как передать номер/адрес порта в подпрограмму

Добавлено: Вс мар 05, 2017 11:19:07
FUZZY_
Что- то типа для KEIL

void outport (port,data){

#asm

mov port, #data

#endasm
}


outport(P1,1);

Re: Как передать номер/адрес порта в подпрограмму

Добавлено: Вс мар 05, 2017 12:21:37
Мурик
Если речь про STM32, то давно уже придумано.

Код: Выделить всё

GPIO_SetBits(GPIOA, GPIO_Pin_0);
GPIO_ResetBits(GPIOA, GPIO_Pin_0);

Re: Как передать номер/адрес порта в подпрограмму

Добавлено: Вс мар 05, 2017 13:03:44
ARV
в AVR-GCC через указатель

Код: Выделить всё

void output(volatile uint8_t *p, uint8_t d){
   *p = d;
}

output(&PORTB, 12);
только в данном контексте никакого смысла в том нет...

Re: Как передать номер/адрес порта в подпрограмму

Добавлено: Вт мар 07, 2017 15:34:06
FUZZY_
Спасибо за ответы - речь идет конкретно MCS-51 KEIL

Предложенные примеры не подходят под KEIL

void output(volatile u8 *p, u8 d){
*p = d;
}



В main:

output(&P1, 12); <---- main_8051.c(447): error C189: '&' on bit/sfr illegal