ВходНаше всё Теги codebook 无线电组件 Поиск Опросы Закон Четверг
2 мая
431982 Топик полностью
mazur (11.08.2013 20:07, просмотров: 284) ответил Ксения на Вы выражение "kbd_states _keys = KEYS_NONE;" без хидера компилировать пытались? Напрасно! Откуда компилятору без хидера знать, что такое kbd_states?
1 - Поубирал по вашему совету лишние подключения хидеров. Объявил переменные как мне тут и посоветовали.  Главный файл: //======================================================================== #define F_CPU 16000000UL //------------------------------------------------------------------------ //------------------------------------------------------------------------ #include <avr/io.h> #include <util/delay.h> #include <avr/interrupt.h> #include "avrlibtypes.h" #include "kbd_drv.h" //======================================================================== //======================================================================== void main(void) { _keys = KEYS_NONE; 2 - Может вы меня неправильно поняли. Есть два файла. имя_файла.c, имя_файла.h Хидер: extern u08 _keys; enum { KEYS_NONE=0, KEYS_DOWN, KEYS_WAIT_UP, KEYS_UP, KEYS_5, KEYS_6, KEYS_7, KEYS_8 }; В сишный файл хидер подключен. Также он сейчас подключен в главный файл. Когда убрал из главного файла #include "kbd_drv.h" компилер ругнулся на KEYS_NONE. Подключил, все нормально. Пробовал все приведенные варианты без подключения в главный файл, ни один вариант не сработал, на конструкцию kbd_states _keys = KEYS_NONE матерится. Делаю _keys = KEYS_NONE при подключенном хидере в главный файл, работает.