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

 
 
> Какой бесплатный компилятор Си для AVR лучше? Поделитесь!, Поделитесь опытом с новичком.
Samodelkin
сообщение Jan 2 2007, 13:37
Сообщение #1


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

Группа: Участник
Сообщений: 102
Регистрация: 29-05-05
Из: Днепропетровск
Пользователь №: 5 520



Начинаю писать на Си для АВР. Посоветуйте компилятор Си для написания и отладки проектов. Попробовал WinAVR. Вроде удобная штука. Интегрируется в AVR Studio, там очень удобно отлаживать. В одной проге и пишишь, и отлаживаешь. Только вот столкнулся с проблемой, при отработке прерывания компилятор при выходе из него ставит RET вместо RETI. В результате ничего не работает, после выхода из прерывания программа начинает работу с 0-го адреса!!!???
Может быть есть что-то более удобное, бесплатное или взломанное???!!!!
Заранее благодарен!
Go to the top of the page
 
+Quote Post
 
Start new topic
Ответов
beer_warrior
сообщение Jan 4 2007, 01:02
Сообщение #2


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

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



!!!!SIGNAL(SIG_OVERFLOW1)!!!!
Найдите в доке разницу между SIGNAL и INTERRUPT и почитайте.


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


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

Группа: Участник
Сообщений: 102
Регистрация: 29-05-05
Из: Днепропетровск
Пользователь №: 5 520



Цитата(beer_warrior @ Jan 4 2007, 01:02) *
!!!!SIGNAL(SIG_OVERFLOW1)!!!!
Найдите в доке разницу между SIGNAL и INTERRUPT и почитайте.


Я Вас понял, но дело в том что INTERRUPT ведет себя точно так-же!!!!!!!
Go to the top of the page
 
+Quote Post
defunct
сообщение Jan 4 2007, 05:24
Сообщение #4


кекс
******

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



Цитата(Samodelkin @ Jan 4 2007, 01:06) *
Я Вас понял, но дело в том что INTERRUPT ведет себя точно так-же!!!!!!!

Значит проблема может быть и не в прерываниях.
Возможны три причины по которым МК у Вас сбрасывается:
1. запрограммирован сооветствующим Fuse-битом WDT, решение проблемы - оключить WDT или добавить в основной цикл программы asm("WDR").
2. глючит BOD, решение проблемы - отключить BOD при знакомстве с МК.
3. помеха на Reset'е, решение - добавить конденсатор между землей и Reset'ом 0.1..1uF.
Go to the top of the page
 
+Quote Post
prottoss
сообщение Jan 4 2007, 05:50
Сообщение #5


Гуру
******

Группа: Свой
Сообщений: 2 720
Регистрация: 24-03-05
Пользователь №: 3 659



Цитата(defunct @ Jan 4 2007, 09:24) *
Цитата(Samodelkin @ Jan 4 2007, 01:06) *

Я Вас понял, но дело в том что INTERRUPT ведет себя точно так-же!!!!!!!

Значит проблема не в прерываниях.
Возможны три причины по которым МК у Вас сбрасывается:
1. запрограммирован сооветствующим Fuse-битом WDT, решение проблемы - оключить WDT или добавить в основной цикл программы asm("WDR").
2. глючит BOD, решение проблемы - отключить BOD при знакомстве с МК.
3. помеха на Reset'е, решение - добавить конденсатор между землей и Reset'ом 0.1..1uF.


Хм...Вроде бы автор топика глаголил, что "...Только вот столкнулся с проблемой, при отработке прерывания компилятор при выходе из него ставит RET вместо RETI..." ???

2 Samodelkin - это на самом деле имеет место быть? Вы смотрели ассемблерный листинг Вашего творения?


--------------------
Go to the top of the page
 
+Quote Post
_Bill
сообщение Jan 4 2007, 23:28
Сообщение #6


Местный
***

Группа: Участник
Сообщений: 416
Регистрация: 18-04-06
Из: Челябинск
Пользователь №: 16 219



Цитата(prottoss @ Jan 4 2007, 05:50) *
Цитата(defunct @ Jan 4 2007, 09:24) *
Цитата(Samodelkin @ Jan 4 2007, 01:06) *

Я Вас понял, но дело в том что INTERRUPT ведет себя точно так-же!!!!!!!

Значит проблема не в прерываниях.
Возможны три причины по которым МК у Вас сбрасывается:
1. запрограммирован сооветствующим Fuse-битом WDT, решение проблемы - оключить WDT или добавить в основной цикл программы asm("WDR").
2. глючит BOD, решение проблемы - отключить BOD при знакомстве с МК.
3. помеха на Reset'е, решение - добавить конденсатор между землей и Reset'ом 0.1..1uF.


Хм...Вроде бы автор топика глаголил, что "...Только вот столкнулся с проблемой, при отработке прерывания компилятор при выходе из него ставит RET вместо RETI..." ???

2 Samodelkin - это на самом деле имеет место быть? Вы смотрели ассемблерный листинг Вашего творения?

Насколько мне известно, в WinAVR функции обработки прерываний описываются при помощи квалификатора SIGNAL. Или нет?
Go to the top of the page
 
+Quote Post
aesok
сообщение Jan 4 2007, 23:49
Сообщение #7


Знающий
****

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



Цитата(_Bill @ Jan 4 2007, 23:28) *
Насколько мне известно, в WinAVR функции обработки прерываний описываются при помощи квалификатора SIGNAL. Или нет?


До avr-libc весии 1.4.4 обработчики прерываний в которых были запрещены прерывания описывались с помощью SIGNAL, а в которых были разрешены прерывания описывались с помощью INTERRUPT.
К сожалению новички очень часто не прочитав документацию и/или не поняв в чем разница использовали INTERRUPT ..... и получали граблями по лбу. Поэтому в avr-libc 1.4.4 SIGNAL был заменен на ISR (SIGNAL конечно же остался для совместимости, только не рекомендован для использования), а INTERRUPT удален, точнее перемещен в <compat/deprecated.h>.

Если вам нужна функциональность INTERRUPT, значит .... вы уже профессиональный разработчик и знаете как описать такой обработчик прерываний.

Анатолий.

Сообщение отредактировал aesok - Jan 4 2007, 23:51
Go to the top of the page
 
+Quote Post

Сообщений в этой теме
- Samodelkin   Какой бесплатный компилятор Си для AVR лучше? Поделитесь!   Jan 2 2007, 13:37
- - aesok   В AVR-GCC нет проблемы про которую вы пишите. Если...   Jan 2 2007, 14:18
- - prottoss   Цитата(Samodelkin @ Jan 2 2007, 17:37) На...   Jan 2 2007, 17:32
- - _Bill   Цитата(Samodelkin @ Jan 2 2007, 13:37) На...   Jan 2 2007, 22:41
|- - Samodelkin   Цитата(_Bill @ Jan 2 2007, 22:41) Цитата(...   Jan 4 2007, 01:02
|- - aesok   Для какого контроллера компилируете? Для некоторых...   Jan 4 2007, 01:37
||- - Samodelkin   Цитата(aesok @ Jan 4 2007, 01:37) Для как...   Jan 4 2007, 22:56
||- - aesok   Цитата(Samodelkin @ Jan 4 2007, 22:56) А ...   Jan 4 2007, 23:17
|- - aesok   В avr-libc 1.4.4, эта версия включена в WinAVR-200...   Jan 4 2007, 15:36
- - defunct   Цитата(Samodelkin @ Jan 2 2007, 13:37) То...   Jan 3 2007, 01:16
|- - kamedi_clab   советую http://www.codevision.be/ (он бесплатны...   Jan 4 2007, 00:21
|- - Punk   Цитата(kamedi_clab @ Jan 4 2007, 00:21) с...   Jan 4 2007, 17:07
- - Samodelkin   Всем, кто откликнулся, большое спасибо! Вы мен...   Jan 4 2007, 00:18
|- - defunct   Цитата(prottoss @ Jan 4 2007, 05:50) Хм.....   Jan 4 2007, 06:10
|- - _Bill   Цитата(aesok @ Jan 4 2007, 23:49) Цитата(...   Jan 5 2007, 11:09
- - kamedi_clab   и для радиолюбителей. а по списку компаний его исп...   Jan 4 2007, 18:23
|- - aesok   Цитата(kamedi_clab @ Jan 4 2007, 18:23) и...   Jan 4 2007, 22:12
- - kamedi_clab   Анатолий, огромное спасибо за толерантность !   Jan 4 2007, 23:57


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

 


RSS Текстовая версия Сейчас: 19th July 2025 - 12:55
Рейтинг@Mail.ru


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