реклама на сайте
подробности

 
 
2 страниц V   1 2 >  
Reply to this topicStart new topic
> WinAVR, Какой поставить
ShuraM
сообщение Mar 21 2007, 23:11
Сообщение #1





Группа: Новичок
Сообщений: 14
Регистрация: 14-11-06
Пользователь №: 22 299



Посоветуйте плз. какую версию стоит поставить?
Go to the top of the page
 
+Quote Post
beer_warrior
сообщение Mar 21 2007, 23:51
Сообщение #2


Профессионал
*****

Группа: Свой
Сообщений: 1 065
Регистрация: 8-10-05
Из: Kiev, UA
Пользователь №: 9 380



WinAVR-20060421


--------------------
Вони шукають те, чого нема,
Щоб довести, що його не існує.
Go to the top of the page
 
+Quote Post
Carmack
сообщение Mar 22 2007, 09:36
Сообщение #3


Участник
*

Группа: Новичок
Сообщений: 44
Регистрация: 28-11-06
Пользователь №: 22 841



А на вышеуказанную версию WinAVR
советую поставить AVRlib,
в которой есть куча замечательных библиотек
http://hubbard.engr.scu.edu/avr/avrlib/avrlib_setup.exe
Go to the top of the page
 
+Quote Post
aesok
сообщение Mar 22 2007, 14:45
Сообщение #4


Знающий
****

Группа: Участник
Сообщений: 596
Регистрация: 26-05-06
Из: Москва
Пользователь №: 17 484



Цитата(beer_warrior @ Mar 21 2007, 23:51) *
WinAVR-20060421

Я бы не был так категоричен..

Если вы используете 256 меги то WinAVR-2007...
Если новые тиньки то версию от klen -а, она может использовать для них инструкцию MOVW

Анатолий.
Go to the top of the page
 
+Quote Post
ShuraM
сообщение Mar 22 2007, 23:10
Сообщение #5





Группа: Новичок
Сообщений: 14
Регистрация: 14-11-06
Пользователь №: 22 299



Спасибо, пошёл скачивать.

Сообщение отредактировал ShuraM - Mar 22 2007, 23:11
Go to the top of the page
 
+Quote Post
ShuraM
сообщение Mar 23 2007, 00:41
Сообщение #6





Группа: Новичок
Сообщений: 14
Регистрация: 14-11-06
Пользователь №: 22 299



Скачал, поставил, WinAVR-20060421. Но что-то не сложилось . Взял пример из книги, при компиляции выдаёт ошибку. Как победить?

Код
#include <inttypes.h>
#include <avr/io.h>
#include <avr/interrupt.h>
#include <avr/signal.h>



unsigned char OverflowC;
unsigned int EdgeR, EdgeF;
unsigned long PulseClocks;

INTERRUPT(SIG_OVERFLOW1)
{
  OverflowC++;
}

INTERRUPT(SIG_INPUT_CAPTURE1 )
{
  if ((PIND & 0x40) != 0)
  {
    EdgeR = ICR1;
    TCCR1B = TCCR1B & 0xBF;
    OverflowC = 0;
  }
  else
  {
    EdgeF = ICR1;
    TCCR1B = TCCR1B | 0x40;
    PulseClocks = (unsigned long)EdgeF -
                  (unsigned long)EdgeR +
                  (unsigned long)OverflowC * 0x10000;
    PORTC = PulseClocks / 500;
  }
}

int main (void)
{
  DDRC = 0xFF;
  TCCR1B = 0xC2;
  TIMSK = 0x24;
  sei();
  while(1);
}

Цитата
Compiling: PulsWdth.c
avr-gcc -c -mmcu=at90s8515 -I. -g -Os -funsigned-char -funsigned-bitfields -fpack-struct -fshort-enums -Wall -Wstrict-prototypes -Wa,-adhlns=PulsWdth.lst -std=gnu99 -Wp,-M,-MP,-MT,PulsWdth.o,-MF,.dep/PulsWdth.o.d PulsWdth.c -o PulsWdth.o
PulsWdth.c:13: warning: return type defaults to `int'
PulsWdth.c:13: warning: function declaration isn't a prototype
PulsWdth.c: In function `INTERRUPT':
PulsWdth.c:13: warning: type of "__vector_6" defaults to "int"
PulsWdth.c: At top level:
PulsWdth.c:18: warning: return type defaults to `int'
PulsWdth.c:18: warning: function declaration isn't a prototype
PulsWdth.c:18: error: redefinition of 'INTERRUPT'
PulsWdth.c:13: error: previous definition of 'INTERRUPT' was here
PulsWdth.c: In function `INTERRUPT':
PulsWdth.c:18: warning: type of "__vector_3" defaults to "int"
make.exe: *** [PulsWdth.o] Error 1

> Process Exit Code: 2
> Time Taken: 00:01


Сообщение отредактировал ShuraM - Mar 23 2007, 00:47
Go to the top of the page
 
+Quote Post
singlskv
сообщение Mar 23 2007, 01:54
Сообщение #7


дятел
*****

Группа: Свой
Сообщений: 1 681
Регистрация: 13-05-06
Из: Питер
Пользователь №: 17 065



Цитата(ShuraM @ Mar 23 2007, 00:41) *
Скачал, поставил, WinAVR-20060421. Но что-то не сложилось . Взял пример из книги, при компиляции выдаёт ошибку. Как победить?

Код
INTERRUPT(SIG_OVERFLOW1)

INTERRUPT(SIG_INPUT_CAPTURE1 )

находим на диске файл avr-libc-user-manual-1.4.4.pdf и внимательно его изучаем
там есть почти все

Вместо INTERRUPT пишем ISR
Вместо SIG_OVERFLOW1 пишем TIM1_OVF_vect
Вместо SIG_INPUT_CAPTURE1 пишем TIMER1_CAPT_vect

то есть
ISR(TIM1_OVF_vect)
и
ISR(TIMER1_CAPT_vect)

Ваша книжка просто слегка устарела sad.gif

P.S. странно что в книжке стоит INTERRUPT вместо SIGNAL
наверное это была такая шютка автора smile.gif
Go to the top of the page
 
+Quote Post
ShuraM
сообщение Mar 23 2007, 22:18
Сообщение #8





Группа: Новичок
Сообщений: 14
Регистрация: 14-11-06
Пользователь №: 22 299



singlskv, OK. Спасибо!
Книга единственная которую я нашёл про "С" для микроконтроллеров.
Шпак Ю.А. "Программирование на языке С для AVR и PIC микроконтроллеров"

Сообщение отредактировал ShuraM - Mar 23 2007, 22:21
Go to the top of the page
 
+Quote Post
beer_warrior
сообщение Mar 24 2007, 10:37
Сообщение #9


Профессионал
*****

Группа: Свой
Сообщений: 1 065
Регистрация: 8-10-05
Из: Kiev, UA
Пользователь №: 9 380



Цитата
Книга единственная которую я нашёл про "С" для микроконтроллеров.


Самой книжки не видел, но важнее ИМХО понимание С(++)
А вот конкретные вопросы реализации, лучше смотреть в оригинальной доке. Даже между соседними версиями есть весьма серьезные расхождения. А переводчик и издательство точности не добавляют.


--------------------
Вони шукають те, чого нема,
Щоб довести, що його не існує.
Go to the top of the page
 
+Quote Post
ShuraM
сообщение Mar 24 2007, 12:31
Сообщение #10





Группа: Новичок
Сообщений: 14
Регистрация: 14-11-06
Пользователь №: 22 299



Наверно Вы правы , надо учить. А книга лежала здесь.

http://lord-n.narod.ru/download/books/wall....2006.part2.rar
http://lord-n.narod.ru/download/books/wall....2006.part1.rar
Go to the top of the page
 
+Quote Post
defunct
сообщение Mar 25 2007, 03:32
Сообщение #11


кекс
******

Группа: Свой
Сообщений: 3 825
Регистрация: 17-12-05
Из: Киев
Пользователь №: 12 326



Цитата(beer_warrior @ Mar 21 2007, 22:51) *
WinAVR-20060421

2007-й оптимизирует эффективнее.
~16k кода скомпилинного 2006421, превратилось в ~14.5k на 20070122.
Go to the top of the page
 
+Quote Post
sensor_ua
сообщение Mar 25 2007, 09:23
Сообщение #12


Профессионал
*****

Группа: Свой
Сообщений: 1 266
Регистрация: 22-04-05
Из: Киев
Пользователь №: 4 387



Только что бодался с 20070122 и студией 4.12 SP4(без неё не пробовал). Без патча от AtmanAVR сразу ошибку выдавал.
Патч http://www.atmanecl.net/download/avrgcc411.zip
Подробности здесь
http://myrobot.ru/articles/p_winavr20070122.php
Пишут, что трабла в 98-й винде, или с большими мегами, но у меня XP SP1 и проект для м16.


--------------------
aka Vit
Go to the top of the page
 
+Quote Post
ShuraM
сообщение Mar 25 2007, 21:44
Сообщение #13





Группа: Новичок
Сообщений: 14
Регистрация: 14-11-06
Пользователь №: 22 299



Вот скажи мне embedder как имитировать прерывание в AVR studio Ver 4.13.528?
Откомпилировал и запустил проект в студии , в пошаговом режиме, дошёл до функции while(1) (исходник в моём посте выше) . В окне I/O View пробовал изменять состояние порта PORTD и PIND, но прерывания не происходит. Как быть?
Go to the top of the page
 
+Quote Post
beer_warrior
сообщение Mar 25 2007, 23:46
Сообщение #14


Профессионал
*****

Группа: Свой
Сообщений: 1 065
Регистрация: 8-10-05
Из: Kiev, UA
Пользователь №: 9 380



Цитата
2007-й оптимизирует эффективнее. ~16k кода скомпилинного 2006421, превратилось в ~14.5k на 20070122.

Слишком много старого кода компилируется с ошибками.
Примеры есть и здесь и на аврфриксе. Так-что ИМХО лучше повременить. Тем более, что новая версия не за горами.


--------------------
Вони шукають те, чого нема,
Щоб довести, що його не існує.
Go to the top of the page
 
+Quote Post
defunct
сообщение Mar 26 2007, 02:51
Сообщение #15


кекс
******

Группа: Свой
Сообщений: 3 825
Регистрация: 17-12-05
Из: Киев
Пользователь №: 12 326



Цитата(sensor_ua @ Mar 25 2007, 08:23) *
Только что бодался с 20070122 и студией 4.12 SP4(без неё не пробовал). Без патча от AtmanAVR сразу ошибку выдавал.

С 4.13-й студией работает без патчей.
Go to the top of the page
 
+Quote Post
Karl
сообщение Mar 26 2007, 11:08
Сообщение #16


Частый гость
**

Группа: Свой
Сообщений: 179
Регистрация: 4-02-05
Пользователь №: 2 429



Цитата(singlskv @ Mar 23 2007, 04:54) *
P.S. странно что в книжке стоит INTERRUPT вместо SIGNAL
наверное это была такая шютка автора smile.gif


И SIGNAL и INTERRUPT - имеют место быть. Только в одном случае во время обработки прерывания все прерывания запрещены, а в другом разрешены (вначале обработчика прерывания стоит команда sei).
Go to the top of the page
 
+Quote Post
sensor_ua
сообщение Mar 26 2007, 21:38
Сообщение #17


Профессионал
*****

Группа: Свой
Сообщений: 1 266
Регистрация: 22-04-05
Из: Киев
Пользователь №: 4 387



Цитата
С 4.13-й студией работает без патчей.

Да, работает. Задолбало только каждый раз сохранение делать перед билдом - иначе крышу срывает. Похоже, что файлы зависимостей не имеют автосохранения перед билдом;( Или птичку где какую поискать...
Сподобился студенту помочь - пересел с ИАРа на эту странную связкуwink.gif Весело - себя студентом почувствовалwink.gif)) Какие-то недозаливки (JTAG ICE) в память (ATmega16) при запуске отладки... Писк. Но отступать некудаwink.gif))


--------------------
aka Vit
Go to the top of the page
 
+Quote Post
defunct
сообщение Mar 27 2007, 14:38
Сообщение #18


кекс
******

Группа: Свой
Сообщений: 3 825
Регистрация: 17-12-05
Из: Киев
Пользователь №: 12 326



Цитата(sensor_ua @ Mar 26 2007, 20:38) *
Сподобился студенту помочь - пересел с ИАРа на эту странную связкуwink.gif Весело - себя студентом почувствовалwink.gif)) Какие-то недозаливки (JTAG ICE) в память (ATmega16) при запуске отладки... Писк. Но отступать некудаwink.gif))

Чем-то IAR лучше, чем-то эта "странная связка" ;>
К примеру с драгоном пока только эта связка и работает. Правда кривоватый "watch" который почему-то не отображает локальные переменные немного напрягает.. Но жить можно.
Go to the top of the page
 
+Quote Post
aesok
сообщение Mar 27 2007, 15:16
Сообщение #19


Знающий
****

Группа: Участник
Сообщений: 596
Регистрация: 26-05-06
Из: Москва
Пользователь №: 17 484



Цитата(defunct @ Mar 27 2007, 14:38) *
К примеру с драгоном пока только эта связка и работает. Правда кривоватый "watch" который почему-то не отображает локальные переменные немного напрягает.. Но жить можно.


Не показывает по тому, что эти переменные расположены оптимизатором не в памяти, а в регистрах. Для всех отладчиков пишут что их полностью коректная работа гарантируеться только для кода скомпилированного без оптимизации. Так что если вам нужно отладить алгоритм - ставте уровень оптимизации -O0, и увидите все переменные.

Я не много работал с AVRStudio 4.13, но както раз она мне в окошке "watch" написала что переременая расположенна в регистрах и коректно показала ее значение.

Анатолий.
Go to the top of the page
 
+Quote Post
ShuraM
сообщение Mar 27 2007, 22:03
Сообщение #20





Группа: Новичок
Сообщений: 14
Регистрация: 14-11-06
Пользователь №: 22 299



Господа. Дык, должен должна программа идти в прерывание при изменении состояния PIND в окне симулятора среды AVR studio?
Go to the top of the page
 
+Quote Post
aesok
сообщение Mar 27 2007, 22:39
Сообщение #21


Знающий
****

Группа: Участник
Сообщений: 596
Регистрация: 26-05-06
Из: Москва
Пользователь №: 17 484



Цитата(ShuraM @ Mar 27 2007, 22:03) *
Господа. Дык, должен должна программа идти в прерывание при изменении состояния PIND в окне симулятора среды AVR studio?


Это зависит от программы.

Вот этим вы что хотите сказать?

int main (void)
{
....
TIMSK = 0x24;
....
}

Анатолий.
Go to the top of the page
 
+Quote Post
ShuraM
сообщение Mar 27 2007, 23:07
Сообщение #22





Группа: Новичок
Сообщений: 14
Регистрация: 14-11-06
Пользователь №: 22 299



Цитата(aesok @ Mar 27 2007, 21:39) *
int main (void)
{
....
TIMSK = 0x24;
....
}


Программа взята и з книги в качестве примера. Ссылка на книгу в моём посте вверху. Программа должна измерить длительность импульса поступающего на вывод ICP и вывести на светодиоды в порт С.

В коментариях к строке TIMSK = 0x24;

Написано следующее > // Снимаем маску с прерываний при переполнении и захвате для T/C1
Go to the top of the page
 
+Quote Post
sensor_ua
сообщение Mar 27 2007, 23:10
Сообщение #23


Профессионал
*****

Группа: Свой
Сообщений: 1 266
Регистрация: 22-04-05
Из: Киев
Пользователь №: 4 387



Цитата
К примеру с драгоном пока только эта связка и работает.

У меня IAR с дракошей работает. Проект на ATmega88 на днях зарелизил. И с MKII IAR тоже без проблем, и с первыми JTAG ICE.


--------------------
aka Vit
Go to the top of the page
 
+Quote Post
aesok
сообщение Mar 27 2007, 23:13
Сообщение #24


Знающий
****

Группа: Участник
Сообщений: 596
Регистрация: 26-05-06
Из: Москва
Пользователь №: 17 484



Цитата(ShuraM @ Mar 27 2007, 23:07) *
...
В коментариях к строке TIMSK = 0x24;

Написано следующее > // Снимаем маску с прерываний при переполнении и захвате для T/C1


Это написано в коментарии... А что говорит даташит по этому поводу?

Анатолий.
Go to the top of the page
 
+Quote Post
defunct
сообщение Mar 29 2007, 23:46
Сообщение #25


кекс
******

Группа: Свой
Сообщений: 3 825
Регистрация: 17-12-05
Из: Киев
Пользователь №: 12 326



Цитата(sensor_ua @ Mar 27 2007, 22:10) *
У меня IAR с дракошей работает. Проект на ATmega88 на днях зарелизил.

Если не секрет какая версия IAR'a, и как Вы его заставили работать? В 4.20 в списке отладчиков dragon'a нет...
Go to the top of the page
 
+Quote Post
sensor_ua
сообщение Mar 31 2007, 09:33
Сообщение #26


Профессионал
*****

Группа: Свой
Сообщений: 1 266
Регистрация: 22-04-05
Из: Киев
Пользователь №: 4 387



Посмотрю в понедельник как - не помню, версия 4.20А.


--------------------
aka Vit
Go to the top of the page
 
+Quote Post
sensor_ua
сообщение Apr 2 2007, 10:47
Сообщение #27


Профессионал
*****

Группа: Свой
Сообщений: 1 266
Регистрация: 22-04-05
Из: Киев
Пользователь №: 4 387



Посмотрел. Обманул. Таки через студию. Просто было 2 макета - один на 16-й, второй - на 88, а прога одна, только конфиги чуть разные. Дракошей мучалась 16-я, а 88-ю сначала JTAG ICE MKII из IAR, а потом дракошей из студии.


--------------------
aka Vit
Go to the top of the page
 
+Quote Post

2 страниц V   1 2 >
Reply to this topicStart new topic
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 


RSS Текстовая версия Сейчас: 21st July 2025 - 16:35
Рейтинг@Mail.ru


Страница сгенерированна за 0.01627 секунд с 7
ELECTRONIX ©2004-2016