Страница 1 из 2
программа написанная в AVR Studio na CVAVR
Добавлено: Вс май 05, 2013 12:03:13
sirga
добрый день, изучаю микроконтроллеры, пишу на CVAVR и вот нашёл программу написанную на AVR Studio, которая работает, хотел дополнить её в свой проект, но закомпилить на CV AVR его не могу, кидает ошибки, с ошибками вроде как справился, закомпилил без них но она не работает.
можно ли не имея опыта большого ее как то переписать к CVAVR и в чём вообще отличия этих компиляторов?
Re: программа написанная в AVR Studio na CVAVR
Добавлено: Вс май 05, 2013 13:40:55
ibiza11
1)можно.
2)много чем, например описанием векторов прерываний.
Вы бы лучше сюда код выложили, местные коты при наличии времени и желания обычно помогают.
Re: программа написанная в AVR Studio na CVAVR
Добавлено: Вс май 05, 2013 13:49:17
ChipKiller
можно ли не имея опыта большого ее как то переписать к CVAVR и в чём вообще отличия этих компиляторов?
... не имея опыта вообще - сложно. Основные отличия в библиотеках, + CV AVR имеет "вольности", которых в стандартном С нет.
Re: программа написанная в AVR Studio na CVAVR
Добавлено: Вс май 05, 2013 14:04:08
sirga
вот по началу было куча ошибок, понял что дело в библиотеках
#include <avr/io.h>
#include <avr/interrupt.h>
#include "main.h"
поменял на
#include <mega8.h>
#include <delay.h>
#include <stdio.h>
#include <stdlib.h>
тогда осталось только 3 ошибки вот такие (сделал скрееншот):
http://s21.postimg.cc/ntrm55ul3/osybki.png
Re: программа написанная в AVR Studio na CVAVR
Добавлено: Вс май 05, 2013 14:04:59
Vov123
ChipKiller писал(а):.. CV AVR имеет "вольности", которых в стандартном С нет.
Имя поля структуры не может начинаться с цифры?
Если появится желание почитать книжки,то есть 2 замечательные,по WinAVR автор Шпак(1 издание),по CVAVR автор Лебедев
Re: программа написанная в AVR Studio na CVAVR
Добавлено: Вс май 05, 2013 14:13:35
YS
тогда осталось только 3 ошибки
Первая - объявление функции main должно выглядеть как
Дело в том, что GCC позволяет определять main с возвращаемым значением int. Для МК это бессмысленно, но ревнителям стандарта нравится. Хотя да,
можно и в AVR передавать в main() аргументы и использовать ее возвращаемое значение.

Но это уже чисто ради лулзов.
Вторая лечится так:
Третья - надо переписать вектора прерываний в стиле CVAVR.
Re: программа написанная в AVR Studio na CVAVR
Добавлено: Вс май 05, 2013 16:55:19
sirga
дописал строчку
но не помогло.
вычитал в нете что прерывания отличаутся так:
в CodeVision:
interrupt [прерывание] void adc_isr(void)
{
код выполняемый при возникновении разрешенного локально и глобально прерывания
}
в WinAVR:
#include <avr/interrupt.h>
ISR(прерывание_vect)
{
код выполняемый при возникновении разрешенного локально и глобально прерывания
}
В примерах слово "прерывание" нужно заменить на название прерывания из ДатаШита либо из заголовочного файла *.h для используемого МК.
так мне это
ISR(TIMER1_CAPT_vect)
{//прерывание по захвату состояния таймера
// sei();
capture=ICR1;
if ( rc5.flag & FL_SAMPLE )
менять на это?
interrupt [TIM1_CAPT] void tim1_capt_isr(void)
поменяв те ошибки пропали но появились такие
http://s23.postimg.cc/xiog535t7/teper_takoe.jpg
Re: программа написанная в AVR Studio na CVAVR
Добавлено: Вс май 05, 2013 17:56:50
YS
дописал строчку
Куда дописали-то? Надо в начало интересующего модуля.
так мне это ... менять на это?
Вам нужно описать прерывание таймера 1 по захвату в стиле CVAVR. Гуглим. Находим, что формат прерывания в CV такой:
Код: Выделить всё
interrupt [<вектор>] void <произвольное имя>(void)
{
}
Дальше гуглим, какой вектор присвоен прерыванию захвата первого таймера. Оказывается, TIM1_CAPT (неожиданно, да?). Ну и переписываем...
Код: Выделить всё
interrupt [TIM1_CAPT] void TIM1_capture(void)
{
...
}
К слову, сам я адепт AVR-GCC. Но гугл мне помог.
Re: программа написанная в AVR Studio na CVAVR
Добавлено: Вс май 05, 2013 18:44:25
sirga
ну это я и писал ранее interrupt [TIM1_CAPT] void tim1_capt_isr(void) получается правильно я догадался, но теперь после этого тут ошибки Error: undefined symbol 'ICES1'
if (!CheckBit(TCCR1B,ICES1)) receive|=1;// если прер. было по падающему фронту то бит==1
ibi(TCCR1B,ICES1);// ICESn = 1, то нарастающий фронт. ICESn =0, то падающий фронт
sbi(TCCR1B,ICES1);//ICESn =0, падающий фронт, ICESn = 1, нарастающий фронт.
cbi(TCCR1B,ICES1);//ICESn =0, падающий фронт; ICESn = 1, нарастающий фронт.
дописал в начало где все define
Re: программа написанная в AVR Studio na CVAVR
Добавлено: Вс май 05, 2013 19:14:24
YS
теперь после этого тут ошибки
Ну так все биты прописаны в стилистике AVR-GCC. Понятное дело, надо, разобравшись в сути конфигурации, либо в лоб задефайнить их соответствующими числовыми значениями (по даташиту), либо найти их эквиваленты в заголовочниках CVAVR, тут уж документауия в помощь.
Re: программа написанная в AVR Studio na CVAVR
Добавлено: Вс май 05, 2013 19:29:16
sirga
спасибо за подсказку, нашел в нете файл "Определения всех битов для микроконтроллеров", подключил и все ошибки о которых писал пропали, прикрепил его если кому понадобиться. Появилась одна последняя новая ошибка
http://s24.postimg.cc/4n4eitqgl/posledniaja.png
Re: программа написанная в AVR Studio na CVAVR
Добавлено: Вс май 05, 2013 19:36:59
YS
Э-э-э, похоже указанная структура определена еще где-то, и это, понятное дело, линкеру не нравится.
Re: программа написанная в AVR Studio na CVAVR
Добавлено: Вс май 05, 2013 19:49:58
sirga
а как это так? нигде в коде у меня не повторяется такого

Re: программа написанная в AVR Studio na CVAVR
Добавлено: Вс май 05, 2013 19:58:29
YS
А что это за rc5.h ?
Re: программа написанная в AVR Studio na CVAVR
Добавлено: Вс май 05, 2013 20:01:06
sirga
YS писал(а):А что это за rc5.h ?
rc5.h содержит функции, для работы с RC5 и структуру rc5
и удаляя весь код из .c файлов всё равно кидает этот эррор. ещё заметил, что если жму compile то комилит без ошибок, если жму buil all чтоб создать hex тогда кидает ету ошибку
Re: программа написанная в AVR Studio na CVAVR
Добавлено: Вс май 05, 2013 21:28:31
YS
А выложите-ка проект целиком...
Re: программа написанная в AVR Studio na CVAVR
Добавлено: Вс май 05, 2013 21:46:44
sirga
Вот выкладываю изначальный проект рабочий в Atmel Studio и мой переделанный в CVAvr/ Так же проект в протеусе рабочий с тем кодом AT Studio.
Очень надеюсь что почините мне его, в дипломную надо дистанционное управление добавить и защита скоро

Вся надежда на вас

Re: программа написанная в AVR Studio na CVAVR
Добавлено: Пн май 06, 2013 08:42:01
vitalik_1984
sirga писал(а):спасибо за подсказку, нашел в нете файл "Определения всех битов для микроконтроллеров", подключил и все ошибки о которых писал пропали

если бы поискали немного в теме про CVAVR, то такого вопроса бы не возникло.
Есть такая опция в настройках проекта "IO bits definition" на ней галку ставите и не нужно никаких лишних движений с файлами.
sirga писал(а):rc5.h содержит функции, для работы с RC5 и структуру rc5
и удаляя весь код из .c файлов всё равно кидает этот эррор.
Так зачем вам тогда в основном файле определение структуры? у вас когда дополнительные файлы подключаются, тогда и начинаются проблемы.
Неплохое правило - нужно чтобы модуль выполнял только те функции, для которых он предназначен. если есть модуль RC5 значит он и должен работать. Не нужна эта структура в основном файле.
Re: программа написанная в AVR Studio na CVAVR
Добавлено: Пн май 06, 2013 09:11:49
sirga
vitalik_1984 писал(а):sirga писал(а):спасибо за подсказку, нашел в нете файл "Определения всех битов для микроконтроллеров", подключил и все ошибки о которых писал пропали

если бы поискали немного в теме про CVAVR, то такого вопроса бы не возникло.
Есть такая опция в настройках проекта "IO bits definition" на ней галку ставите и не нужно никаких лишних движений с файлами.
sirga писал(а):rc5.h содержит функции, для работы с RC5 и структуру rc5
и удаляя весь код из .c файлов всё равно кидает этот эррор.
Так зачем вам тогда в основном файле определение структуры? у вас когда дополнительные файлы подключаются, тогда и начинаются проблемы.
Неплохое правило - нужно чтобы модуль выполнял только те функции, для которых он предназначен. если есть модуль RC5 значит он и должен работать. Не нужна эта структура в основном файле.
о, круто, у меня была старая версия там не было такой функции. обновил, поставил галочку и без того файла что нашел ошибок не выдаёт. тех... с последней так и осталось хоть и удалил #include <rc5.h> из main.c

ай во заметил что как удалил от туда тогда ещё и check syntax ошибки выдаёт а с ней нет, так что оставлю
Re: программа написанная в AVR Studio na CVAVR
Добавлено: Пн май 06, 2013 10:55:16
sirga
в общим совсем я отчаился... методом тыка из rc5.h в котором была структура и ошибка перенёс ее в оба .c файла проекта и ошибки пропали, hex создался, но не заработал. ещё 2 warninga появилось
http://s23.postimg.cc/60uzcry2j/warnings.png но они наверно на работоспособность не влияют? что то в самой программе не так?