kipmaster 0 27 февраля, 2008 Опубликовано 27 февраля, 2008 · Жалоба Помогите понять, что не так. Использую сишную функцию чтения из EEPROM: a0 = eeprom_read_word(eeprom_A0); В качестве аргумента использовал переменную, константу, число. В любом случае, кроме нуля выдается предупреждение: ../ILT-01.c:108: warning: passing arg 1 of `eeprom_read_byte' makes pointer from integer without a cast Слова знакомые, а смысл не доходит. Программа тем не менее работает как надо, но warning задолбал :( Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Палыч 6 27 февраля, 2008 Опубликовано 27 февраля, 2008 · Жалоба В качестве аргумента использовал переменную, константу, число. В любом случае, кроме нуля выдается предупреждение: ../ILT-01.c:108: warning: passing arg 1 of `eeprom_read_byte' makes pointer from integer without a cast Ну, а что же Вы хотели? Вот как эта функция описана в eeprom.h/** \ingroup avr_eeprom Read one 16-bit word (little endian) from EEPROM address \c addr. */ extern uint16_t eeprom_read_word (const uint16_t *addr); т.е. аргументом должен быть указатель. Я сам с WinAVR не работаю, но, если программа работает правильно, то (imho) в вызове функции необходимо привести константу к нужному типу (см. выше) для того, чтобы не было предупреждения. P.S. В файле eeprom.h есть #define eeprom_rw(addr) eeprom_read_word ((uint16_t *)(addr)) т.е. если использовать eeprom_rw вместо eeprom_read_word, то и предупреждение вроде как должно исчезнуть Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться