roboforum.ru

Технический форум по робототехнике.

Бортовой компьютер на инжектор

Программирование микроконтроллеров AVR, PIC, ARM.
Разработка и изготовление печатных плат для модулей.

Re: Бортовой компьютер на инжектор

Сообщение Sun-dey » 17 сен 2009, 11:39

написал автору, ждемс...
Sun-dey
 
Сообщения: 106
Зарегистрирован: 23 апр 2009, 14:12
Откуда: Курская обл.

Re: Бортовой компьютер на инжектор

Сообщение grek » 18 сен 2009, 09:33

Сдается мне,что это все похоже на компилятор KEIL.Сам им не пользуюсь.Может кто нибудь попробует,кто знает этот компилятор запихнуть программу в него.Но может это и не keil. :(
grek
 
Сообщения: 159
Зарегистрирован: 16 сен 2009, 15:41
Откуда: Арзамас

Re: Бортовой компьютер на инжектор

Сообщение galex1981 » 18 сен 2009, 11:38

Keil есть, попробую сегодня, потом отпишусь
if(!Operate) Read(pDatasheet);
Аватара пользователя
galex1981
 
Сообщения: 4363
Зарегистрирован: 04 дек 2008, 22:44
Откуда: Камышин
Skype: galk-aleksandr1
прог. языки: Kotlin, Java, C, C++, Assm, BasCom, VB, php
ФИО: Галкин Александр Владимирович

Re: Бортовой компьютер на инжектор

Сообщение Sun-dey » 18 сен 2009, 16:47

Ну написал я: #define TCNT1 TCNT1L+TCNT1H (что то мне подсказывает, что немного не так надо :lol: ) ругань на "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
Sun-dey
 
Сообщения: 106
Зарегистрирован: 23 апр 2009, 14:12
Откуда: Курская обл.

Re: Бортовой компьютер на инжектор

Сообщение 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
Аватара пользователя
SERGEY_M
 
Сообщения: 682
Зарегистрирован: 20 мар 2009, 12:45
Откуда: Украина, Одесса
ФИО: Сергей

Re: Бортовой компьютер на инжектор

Сообщение galex1981 » 18 сен 2009, 18:28

Нет, это не Keil овский проект, не то совсем...
if(!Operate) Read(pDatasheet);
Аватара пользователя
galex1981
 
Сообщения: 4363
Зарегистрирован: 04 дек 2008, 22:44
Откуда: Камышин
Skype: galk-aleksandr1
прог. языки: Kotlin, Java, C, C++, Assm, BasCom, VB, php
ФИО: Галкин Александр Владимирович

Re: Бортовой компьютер на инжектор

Сообщение 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;



попробовал все это дело закомментить- дальше еще ошибки посыпались: много и разных :)
в общем требуется более детальное изучение проекта, когда нибудь :roll:
Sun-dey
 
Сообщения: 106
Зарегистрирован: 23 апр 2009, 14:12
Откуда: Курская обл.

Re: Бортовой компьютер на инжектор

Сообщение 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 КиБ) Скачиваний: 390
vvk74
 
Сообщения: 128
Зарегистрирован: 08 сен 2009, 20:13
Откуда: Екатеринбург

Re: Бортовой компьютер на инжектор

Сообщение 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'

ща поздно уже, соображалка не работает, потом поковыряю :wink:
Sun-dey
 
Сообщения: 106
Зарегистрирован: 23 апр 2009, 14:12
Откуда: Курская обл.

Re: Бортовой компьютер на инжектор

Сообщение galex1981 » 19 сен 2009, 21:50

Еще и новую библиотеку mk_lib.lib нужно скопировать тебе
if(!Operate) Read(pDatasheet);
Аватара пользователя
galex1981
 
Сообщения: 4363
Зарегистрирован: 04 дек 2008, 22:44
Откуда: Камышин
Skype: galk-aleksandr1
прог. языки: Kotlin, Java, C, C++, Assm, BasCom, VB, php
ФИО: Галкин Александр Владимирович

Re: Бортовой компьютер на инжектор

Сообщение Sun-dey » 20 сен 2009, 17:29

Копировал, ту что в архиве. именно на нее ругается.
Что самое загадочное- переменные объявлены в основном файле, например вот эта
Ошибка: Library error: new bk\mk_lib.lib(73): undefined symbol 'km_oil'
и вот объвление переменной :eeprom signed int km_oil=0;
Sun-dey
 
Сообщения: 106
Зарегистрирован: 23 апр 2009, 14:12
Откуда: Курская обл.

Re: Бортовой компьютер на инжектор

Сообщение galex1981 » 20 сен 2009, 20:16

Просто ошибки выдаются подобные тому что что-то не то с версией библиотеки
if(!Operate) Read(pDatasheet);
Аватара пользователя
galex1981
 
Сообщения: 4363
Зарегистрирован: 04 дек 2008, 22:44
Откуда: Камышин
Skype: galk-aleksandr1
прог. языки: Kotlin, Java, C, C++, Assm, BasCom, VB, php
ФИО: Галкин Александр Владимирович

Re: Бортовой компьютер на инжектор

Сообщение 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 *'
grek
 
Сообщения: 159
Зарегистрирован: 16 сен 2009, 15:41
Откуда: Арзамас

Re: Бортовой компьютер на инжектор

Сообщение Sun-dey » 21 сен 2009, 13:07

Закомменитруй :) зачем она нужна- пост vvk74 » 19 сен 2009, 16:41
Перестанет спотыкаться в main- будут другие ошибки, из файлика mk_lib.lib
Sun-dey
 
Сообщения: 106
Зарегистрирован: 23 апр 2009, 14:12
Откуда: Курская обл.

Re: Бортовой компьютер на инжектор

Сообщение 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'

и т.д.Ошибки возникаю совершенно из другой библиотеки.
grek
 
Сообщения: 159
Зарегистрирован: 16 сен 2009, 15:41
Откуда: Арзамас

Пред.След.

Вернуться в Микроконтроллеры

Кто сейчас на конференции

Сейчас этот форум просматривают: Yandex [Bot] и гости: 12