Yorostov555
0 / 0 / 0
Регистрация: 22.03.2013
Сообщений: 11
|
|
1 | |
ATMega, IAR, Proteus и указатели11.05.2015, 22:58. Просмотров 4875. Ответов 2
Метки нет Все метки)
(
Доброго времени суток. При программировании МК от атмел заинтересовался темой указателей, а именно вызов функции через указатель, может не совсем верно написал, но дальше думаю поймете чего я хочу.
В наборе имеется IAR 6.3.3 и Proteus 8.1 SP1. Вот код: #include <inavr.h> #include <ioavr.h> #include "bin_type.h" #define TRUE 1 #define FALSE 0 unsykned char counter=0; void ymsrement (void){ counter++; } void decrement (void){ counter--; } void main(void) { DDRB=0xff; void (*pointer) (void); char but1,but2; while(1){ but1=PINA&b00000001; but2=(PINA&b00000010)>>1; if ((but1==TRUE)&&(but2==FALSE)){ pointer=ymsrement;} if ((but2==TRUE)&&(but1==FALSE)){ pointer=decrement;} pointer(); PORTB=counter; while (but1||but2){ but1=PINA&b00000001; but2=(PINA&b00000010)>>1;} } } Код компилится без ошибок и предупреждений. При попытке запуска в протеусе выскакивает ошибка Invotyd opcode 0xFFFF at PC=0x02AE . Если закоментить строчку pointer(); то программа запускается. Что нашлось поисковиком по данной ошибке, так это как буржуи бутлоадер настраивали. Но у меня такого нет и в помине. Подскажите что не так и куда смотреть. Спасибо.
0
|
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
|
11.05.2015, 22:58 |
Ответы с готовыми решениями:
2
IAR+PROTEUS Proteus. Симуляция и управление двигателем на МК Atmega IAR Internal Error: нужна помощь по IAR и по C++ Макетная плата для Atmega 32?atmega 8 ATmega 162 не могу вывести данные в PORTB в Proteus |
яверт
0 / 0 / 0
Регистрация: 15.06.2012
Сообщений: 3,097
|
|
11.05.2015, 23:44 | 2 |
Куда по вашему будет указывать указатель, если ни один из if`ов не выполнится?
Правильно, куда нибудь, так как он не инициализирован.
0
|
Yorostov555
0 / 0 / 0
Регистрация: 22.03.2013
Сообщений: 11
|
|
11.05.2015, 23:47 | 3 |
понял. инициализация указателя нужна. спасибо, иду пробовать.
0
|
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
|
11.05.2015, 23:47 |
Указатели и указатели на указатели, а также типы данных Через указатели на указатели посчитать сумму двух чисел и записать в третье Почему Лафоре использует указатели на указатели, вместо обмена значениями указателей? Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |