Так вот к чему это я , проснувшись сегодня поняв. осмыслив то что что прошло уже не вернёшь, а всё новое только впереди я решил сюда написать как с вашей помощью я решил задачи собственно темы этого форума.
Работа с портами в функциях. Порт как аргумент для функции
функция из исходника многоуважаемого uk8amk для установки пина порта
void PortSetPin(volatile char *AddressPort, char NumberPin, char Value)
{
if( Value )
{
*AddressPort |= (1<<NumberPin);
}else
{
*AddressPort &= ~(1<<NumberPin);
};
}
где :
AddressPort адрес порта например ((char*)0x38);//PORTB SRAM adress +0x20
NumberPin номер пина порта 0-7
Value значение в какое состояние переключить пин порта 0 или 1
пример вызова:
volatile char *port;
port = ((char*)0x32); //PORTD SRAM adress + 0x20
PortSetPin(port, 0, 1);
функция для определения текущего состояния пина, это уже я сам постарался
возвращает 1 если пин установлен (1) или 0 если пин не установлен (0)
int TestPinTrue(volatile char *AddressPin, char NumberPin)
{
if(*AddressPin &(1<<NumberPin)) return 1; // проверяем есть ли 1 на PINB.7
else return 0;
}
где:
AddressPin адрес PINB ((char*)0x36); //PINB SRAM adress + 0x20
NumberPin номер пина у которого проверяем состояние 0-7
пример вызова:
volatile char *port;
volatile char *pin;
port = ((char*)0x32); //PORTD SRAM adress + 0x20
pin = ((char*)0x36); //PINB SRAM adress + 0x20
if(TestPinTrue(pin,7)==1) PortSetPin(port, 0, 1);
else PortSetPin(port, 0, 0);
В этом примере проверяется состояние PINB.7 если на PINB.7==1 тогда и на выходе PORD.0=1
иначе PINB.7==0 тогда и на выходе PORD.0=0
Спасибо всем благородно, великодушно кто принимал участие в решении этой интереснейшей задачи.
Итог, решение написал подробно так как встречал не раз на форумах такую ситуацию когда идёт обсуждение какого то вопроса хоть на 10стр. отдельные слова фразы предложения я на последней стр написано : ааааааа спасибо я всё понял, тему можно закрывать
Мне кажется что надо писать в таких ситуациях, так сказать подводить итог какая была задача и как что ты понял как её реализовал!!! потому что это может быть интересно не только тебе но и другим ! не надо быть эгоистом!!!