[an error occurred while processing this directive]
[an error occurred while processing this directive]
Функции в IAR AVR ???? Гдето чтото недопонимаю.....
(«Телесистемы»: Конференция «Микроконтроллеры и их применение»)
[an error occurred while processing this directive]
[an error occurred while processing this directive]
Отправлено
Колян 03 мая 2002 г. 15:29
чегото явно недопонимаю..... есть функция в которую передаются 4 переменных, там они курочаца и возврашаюца обратно раскуроченными.Описал так: char CheckCan(unsigned char *rev, unsigned char *tout, unsigned char *flaga, unsigned char *flagb) { //упрощенно:) *flaga++; *flagb++; *rev++ ; *tout++ ; if (*flaga==20) return(0); return(1); }
в майне вызываю ее так: if (CheckCan( &Rev0, &Tout0, &FlagA0, &FlagB0)) ToFleshTmp=ToFleshTmp|Bit0; //Rev0, Tout0, FlagA0, FlagB0 -все ансигнед чар.
начто асм код выглядит совсем криво, эти 4 переменных из области верхних адресов переносятся в регистры R16--R19, вызывается функция,внутри функции регистры изменяются а при выходе они невосстанавливаются обратно из R16--R19 в верхние адреса(((((Мало этого так она еще и возврат функции в регистре R16 делает.... Покажите дяди где я облажался и научите как необлажаца плиз)))