Микроконтролери и електроника
http://mcu-bg.com/mcu_site/

Смяна на pin в CCS?
http://mcu-bg.com/mcu_site/viewtopic.php?f=7&t=5245
Страница 1 от 1

Автор:  milenjs [ Съб Дек 22, 2007 10:17 am ]
Заглавие:  Смяна на pin в CCS?

Ще се опитам да обясня - имам написан драйвер който използвам в главната програма. В него имам нещо от вида - #define WORKING_PIN PIN_E0.
Всичко си работеше добре докато не ми се наложи в прецеса на работа да се сменя извода - т.е. да е динамичен - в един участък примерно да е Е1, в друг Е2 и така.
Не съм съвсем в час с подробностите в С-то та ако някой може да бутне едно рамо или да карам по трудния начин?

Автор:  Predator_MF [ Съб Дек 22, 2007 10:55 am ]
Заглавие: 

Ако ползваш #define там където искаш да смениш пина, няма да работи, #define е compile-time директива. Ще трябва да караш по трудния начин, примерно да напишеш функция за клатене на пин, която да проверява в глобална променлива кой е пина, към който да се обръща.

Код:
#byte PORTE = 0x09
#bit  E1 = PORTE.1
#bit  E2 = PORTE.2

int1 working_pin_ctrl = 0; // глобална bit променлива

#inline void workpin(int1 state)
{
  if (working_pin_ctrl)
   E1 = state;
    else
     E2 = state;
}


Няма да се отрази особено в бързодействието на програмата ти - if-a се компилира с 4 инструкции на asm :)

Автор:  milenjs [ Съб Дек 22, 2007 11:00 am ]
Заглавие: 

Благодаря @Predator_MF :D

Страница 1 от 1 Часовете са според зоната UTC + 2 часа [ DST ]
Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group
http://www.phpbb.com/