Технический форум по робототехнике.
Sun-dey » 17 сен 2009, 11:39
написал автору, ждемс...
grek » 18 сен 2009, 09:33
Сдается мне,что это все похоже на компилятор KEIL.Сам им не пользуюсь.Может кто нибудь попробует,кто знает этот компилятор запихнуть программу в него.Но может это и не keil.

galex1981 » 18 сен 2009, 11:38
Keil есть, попробую сегодня, потом отпишусь
Sun-dey » 18 сен 2009, 16:47
Ну написал я: #define TCNT1 TCNT1L+TCNT1H (что то мне подсказывает, что немного не так надо

) ругань на "TCNT1" прекратилась.
WDCE в этой записи к СИ никаким боком, или ошибаюсь?
- Код: Выделить всё • Развернуть
{#asm("cli");
#asm("wdr");
/* Start timed equence */
WDTCSR |= (1<<WDCE) | (1<<WDE);
/* Set new prescaler(time-out) value = 16K cycles (~0.125 s) */
WDTCSR = (1<<WDE) | (1<<WDP1) | (1<<WDP0);
while(1);
}
в даташите нашел вот такую запись: в связи с чем вопрос- как объяснить компилятору, что регистры в МК такие есть?
Address Name Bit 7 Bit 6 Bit 5 Bit 4 Bit 3 Bit 2 Bit 1 Bit 0 Page
(0x60) WDTCSR WDIF WDIE WDP3 WDCE WDE WDP2 WDP1 WDP0 52
SERGEY_M » 18 сен 2009, 18:11
напиши строку в файле C:\cvavr2\inc\mega644.h
- Код: Выделить всё • Развернуть
#define TCNT1 (*(unsigned int *) 0x84)
а так-же
- Код: Выделить всё • Развернуть
/* ***** WATCHDOG ********************* */
/* WDTCSR - Watchdog Timer Control Register */
#define WDP0 0 // Watch Dog Timer Prescaler bit 0
#define WDP1 1 // Watch Dog Timer Prescaler bit 1
#define WDP2 2 // Watch Dog Timer Prescaler bit 2
#define WDE 3 // Watch Dog Enable
#define WDCE 4 // Watchdog Change Enable
#define WDP3 5 // Watchdog Timer Prescaler Bit 3
#define WDIE 6 // Watchdog Timeout Interrupt Enable
#define WDIF 7 // Watchdog Timeout Interrupt Flag
galex1981 » 18 сен 2009, 18:28
Нет, это не Keil овский проект, не то совсем...
Sun-dey » 18 сен 2009, 18:44
Уже лучше
осталась пара ворнингов на переменные и вот эта бяка: "a value of type 'eeprom struct eeprom_structure [100] *' can't be assigned to an entity of type 'eeprom struct eeprom_structure *'"
собственно запись ниже наводит тихий ужас (я не волшебник, я только учусь)...что бы это могло значить?
- Код: Выделить всё • Развернуть
eeprom struct eeprom_structure {
int date; // дата начала поездки
int time_s; // время начала поездки
int km_s; // пробег за поездку
int l_s; // расход за поездку
unsigned char v_max; //максимальная скорость в поездке
int time; // продолжительность поездки
int time_drive;
} save[100]={0};
struct eeprom_structure eeprom *ep;
попробовал все это дело закомментить- дальше еще ошибки посыпались: много и разных
в общем требуется более детальное изучение проекта, когда нибудь

vvk74 » 19 сен 2009, 16:41
Sun-dey писал(а):а как обойти ошибки? вот эту например: Error: undefined symbol 'TCNT1'
упс... это я mega644.h поправил в свое время, т.к. изначально была мега32, а только потом стала мега644 и чтобы везде не переписывать я внес изменения в файл регистров. Программа написана под CodeVision версия 1.24.8d
Добавлено спустя 11 минут 14 секунд:Sun-dey писал(а):собственно запись ниже наводит тихий ужас (я не волшебник, я только учусь)...что бы это могло значить?
- Код: Выделить всё • Развернуть
eeprom struct eeprom_structure {
int date; // дата начала поездки
int time_s; // время начала поездки
int km_s; // пробег за поездку
int l_s; // расход за поездку
unsigned char v_max; //максимальная скорость в поездке
int time; // продолжительность поездки
int time_drive; //время в движении
} save[100]={0};
struct eeprom_structure eeprom *ep;
Это я со структурами экспериментировал, МК запоминает информацию по 100 последним поездкам (я правда этой функцией не пользуюсь) - дата и время начала поездки, сколько километров проехали и сколько литров бензина израсходовали, максимальная скорость достигнутая в течении поездки, продолжительность поездки и время проведенное в движении.
- Вложения
-
mega644.h
- (3.84 КиБ) Скачиваний: 401
Sun-dey » 19 сен 2009, 20:51
Привет. я уже и не надеялся

Размечтался в протеусе запустить, а оно не тут то было.
Использую CodeVision 2.03.4, заменил файлик mega644.h, один черт сыплется
Library error: new bk\mk_lib.lib(121): undefined symbol 'lcd_buffer'
Library error: new bk\mk_lib.lib(122): undefined symbol 'delay_ms'
ща поздно уже, соображалка не работает, потом поковыряю

galex1981 » 19 сен 2009, 21:50
Еще и новую библиотеку mk_lib.lib нужно скопировать тебе
Sun-dey » 20 сен 2009, 17:29
Копировал, ту что в архиве. именно на нее ругается.
Что самое загадочное- переменные объявлены в основном файле, например вот эта
Ошибка: Library error: new bk\mk_lib.lib(73): undefined symbol 'km_oil'
и вот объвление переменной :eeprom signed int km_oil=0;
galex1981 » 20 сен 2009, 20:16
Просто ошибки выдаются подобные тому что что-то не то с версией библиотеки
grek » 21 сен 2009, 09:15
Ну а все-таки как от этой ошибки избавиться Error: a value of type 'eeprom struct eeprom_structure [100] *' can't be assigned to an entity of type 'eeprom struct eeprom_structure *'
Sun-dey » 21 сен 2009, 13:07
Закомменитруй

зачем она нужна- пост vvk74 » 19 сен 2009, 16:41
Перестанет спотыкаться в main- будут другие ошибки, из файлика mk_lib.lib
grek » 21 сен 2009, 14:13
Пробовал только у меня не такие ошибки возникают почемуто
Library error: C:\Program Files\cvavr\lib\commi.lib(106): undefined symbol 'recive'
Library error: C:\Program Files\cvavr\lib\commi.lib(121): undefined symbol 'shortTimeout'
Library error: C:\Program Files\cvavr\lib\commi.lib(130): undefined symbol 'recive'
и т.д.Ошибки возникаю совершенно из другой библиотеки.