mazur (11.08.2013 20:07, просмотров: 325) ответил Ксения на Вы выражение "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 при подключенном хидере в главный файл, работает.