Например TDA7294

 Форум РадиоКот • Просмотр темы - WinAvr в вопросах и ответах
Форум РадиоКот
Здесь можно немножко помяукать :)



Текущее время: Сб апр 21, 2018 18:43:12



Часовой пояс: UTC + 3 часа [ Летнее время ]


ПРЯМО СЕЙЧАС:



Начать новую тему Ответить на тему  [ Сообщений: 2044 ]  На страницу 1, 2, 3, 4, 5 ... 103  След.
Автор Сообщение
Не в сети
 Заголовок сообщения: WinAvr в вопросах и ответах
СообщениеДобавлено: Сб апр 07, 2007 21:58:21 
Э...
Аватар пользователя

Зарегистрирован: Ср апр 04, 2007 09:39:14
Сообщений: 2794
Откуда: Москва
Рейтинг сообщения: 0
factorial писал(а):
есть проблема при обработке прерывания. Откомпилировано в WinAVR.


вот такой пример для WinAVR:

Код:

#include <avr>

ISR(прерывание_vect)
{
 код выполняемый при возникновении
 разрешенного локально и глобально прерывания
}



Подробнейшая информация о работе в WinAVR собрана на
http://www.roboforum.ru/viewtopic.php?f=2&t=3928


Последний раз редактировалось tych Пн апр 21, 2008 22:43:18, всего редактировалось 1 раз.

Вернуться наверх
 Профиль WWW  
 
Не в сети
 Заголовок сообщения:
СообщениеДобавлено: Сб апр 07, 2007 22:31:53 
Открыл глаза
Аватар пользователя

Зарегистрирован: Пн дек 25, 2006 03:29:15
Сообщений: 56
Откуда: г.Винница Украина
Рейтинг сообщения: 0
У тебя это где? И потом, я в кн смотрел, и настроил все как надо, а написано там так:
#include <avr/signal.h>
INTERRUPT(прерывание)
{
//Пользовательский код
}

где перерывание -- идентификатор, передающийся в в качестве параметров макросу INTERRUPT, ну типа SIG_ADC, SIG_COMPARATOR. А в моем случае походу SIG_OUTPUT_COMPARE0

А все регистры по настройке СV настроил аналогично тому что я описал выше. Вот така тут беда

_________________
А кота своего я назвал квадратом...


Вернуться наверх
 Профиль  
 
JLCPCB Prototype, Бесплатная доставка первого заказа + $2 на прототип ПП!

Крупнейший производитель печатных плат в Китае, 290,000+ заказчиков, 8,000+ он-лайн заказов в день.

Цена за 10 плат: $2 за 2-х слойную, $15 за 4-х слойную, $74 за 6-ти слойную.

LCSC Parts: Экономия до 50%, большой выбор компонентов в наличии, отправка заказа в день оплаты.

Не в сети
 Заголовок сообщения:
СообщениеДобавлено: Сб апр 07, 2007 22:39:53 
Э...
Аватар пользователя

Зарегистрирован: Ср апр 04, 2007 09:39:14
Сообщений: 2794
Откуда: Москва
Рейтинг сообщения: 0
Я думал у вас свежая версия WinAVR.

Код ваш давайте.


Вернуться наверх
 Профиль WWW  
 

Не в сети
 Заголовок сообщения:
СообщениеДобавлено: Сб апр 07, 2007 22:47:21 
Открыл глаза
Аватар пользователя

Зарегистрирован: Пн дек 25, 2006 03:29:15
Сообщений: 56
Откуда: г.Винница Украина
Рейтинг сообщения: 0
Вот он весь... Версия WinAVR у меня последняя WinAVR-20070122-install, правда примеры может немного постарее смотрел из книги за 2007 год.


Вложения:
vot.c [2.18 KiB]
Скачиваний: 1998

_________________
А кота своего я назвал квадратом...
Вернуться наверх
 Профиль  
 

Не в сети
 Заголовок сообщения:
СообщениеДобавлено: Сб апр 07, 2007 22:57:09 
Э...
Аватар пользователя

Зарегистрирован: Ср апр 04, 2007 09:39:14
Сообщений: 2794
Откуда: Москва
Рейтинг сообщения: 0
factorial писал(а):
Вот он весь... Версия WinAVR у меня последняя WinAVR-20070122-install


Тогда правильно так как у меня в курсе и как выше вам написал.

Удивительный у вас исходник - довольно большой и НИ ОДНОГО вашего комментария ! Комментируйте пожалуйста код который пишите.

А где у вас включение нужного прерывания ?

это TIMSK=0x01; ?

а какой МК ?

Сохраните исходник и затем повыкидывайте из него все оставив только скелет и добейтесь рабыты прервания по таймеру.

Потом добавляйте код.

Советую всегда писать прогу от простого к сложному постоянно проверяя работоспособность и отлавивая ошибки по ходу написания.


Вернуться наверх
 Профиль WWW  
 
Не в сети
 Заголовок сообщения:
СообщениеДобавлено: Сб апр 07, 2007 23:03:01 
Открыл глаза
Аватар пользователя

Зарегистрирован: Пн дек 25, 2006 03:29:15
Сообщений: 56
Откуда: г.Винница Украина
Рейтинг сообщения: 0
Именно TIMSK=0x01; -- это там и самое главное, все остальнрое не влияет на проблему, кроме функции обработки. А контроллер Atmega162

_________________
А кота своего я назвал квадратом...


Вернуться наверх
 Профиль  
 
Не в сети
 Заголовок сообщения:
СообщениеДобавлено: Вс апр 08, 2007 00:00:23 
Э...
Аватар пользователя

Зарегистрирован: Ср апр 04, 2007 09:39:14
Сообщений: 2794
Откуда: Москва
Рейтинг сообщения: 0
Дак я и советую написать прогу с "голым" прерыванием.


Вернуться наверх
 Профиль WWW  
 
Не в сети
 Заголовок сообщения:
СообщениеДобавлено: Пн апр 09, 2007 00:58:32 
Открыл глаза
Аватар пользователя

Зарегистрирован: Пн дек 25, 2006 03:29:15
Сообщений: 56
Откуда: г.Винница Украина
Рейтинг сообщения: 0
Работает такой вариант. Но странно, когда я обявил еще так:
ISR(SIG_OUTPUT_COMPARE0)
{
PORTA = 80;
}

то ничего не происходило, а ведь в iom162.h обявлено так:
/* Timer/Counter0 Compare Match */
#define TIMER0_COMP_vect _VECTOR(16)
#define SIG_OUTPUT_COMPARE0 _VECTOR(16)

Это ж одно и тоже, только функция ISR. Почемуже новая версия неподдерживает измененные функции предиидущей :lol:

Гон немного играешся пол дня пока до тебя донесут, что так уже незаписываеться....

И такой малюсенький вопросик: Что за предупреждение такое при компиляции "5.c:26:2: warning: no newline at end of file"?, кручу мучу убрать его немогу

_________________
А кота своего я назвал квадратом...


Вернуться наверх
 Профиль  
 
Не в сети
 Заголовок сообщения:
СообщениеДобавлено: Пн апр 09, 2007 07:36:33 
Э...
Аватар пользователя

Зарегистрирован: Ср апр 04, 2007 09:39:14
Сообщений: 2794
Откуда: Москва
Рейтинг сообщения: 0
factorial писал(а):
играешся пол дня пока до тебя донесут, что так уже незаписываеться...


Поэтому на странице 3 курса и приведены примеры объявления обработчиков для разных современных компиляторов.

factorial писал(а):
вопросик: Что за предупреждение

"5.c:26:2: warning: no newline at end of file"


Внимание - нет новой строки в конце файла.

Он-лайн перевод - translate.ru


Вернуться наверх
 Профиль WWW  
 
Не в сети
 Заголовок сообщения:
СообщениеДобавлено: Пн апр 09, 2007 11:41:35 
Открыл глаза
Аватар пользователя

Зарегистрирован: Пн дек 25, 2006 03:29:15
Сообщений: 56
Откуда: г.Винница Украина
Рейтинг сообщения: 0
Переводить я умею, а вот там все на месте, а сообщение везде есть, и все строки вроде не масте, то это нормальное сообщение, не нисущее боков?

_________________
А кота своего я назвал квадратом...


Вернуться наверх
 Профиль  
 
Не в сети
 Заголовок сообщения:
СообщениеДобавлено: Пн апр 09, 2007 12:25:42 
Э...
Аватар пользователя

Зарегистрирован: Ср апр 04, 2007 09:39:14
Сообщений: 2794
Откуда: Москва
Рейтинг сообщения: 0
Обычно "Вонинги" не страшны.


Вернуться наверх
 Профиль WWW  
 
Не в сети
 Заголовок сообщения:
СообщениеДобавлено: Пн апр 09, 2007 12:55:15 
Открыл глаза
Аватар пользователя

Зарегистрирован: Пн дек 25, 2006 03:29:15
Сообщений: 56
Откуда: г.Винница Украина
Рейтинг сообщения: 0
:))) Неужели...., именно этот я немогу некак понять, все нормально, а он везде есть -- портит гад всю картину! Ну да и черт с ним пусть себе будет....

_________________
А кота своего я назвал квадратом...


Вернуться наверх
 Профиль  
 
Не в сети
 Заголовок сообщения:
СообщениеДобавлено: Пн апр 09, 2007 20:44:22 
Открыл глаза
Аватар пользователя

Зарегистрирован: Пн дек 25, 2006 03:29:15
Сообщений: 56
Откуда: г.Винница Украина
Рейтинг сообщения: 0
Опять попал на гиморой, кокогото..... глобально обьявленая переменная N нехочеть работать. Експерементальный код такой:
#include <avr/io.h>
#include <avr/interrupt.h>

int N=0;

ISR(TIMER0_COMP_vect)
{
N=TCNT1;
TCNT0=0;
N=0;
}


int main(void)
{
DDRA=0xFF;
PORTA=0xFF;
TCCR0=0x01;//Set timer0
OCR0=0x5F;
TIMSK=0x01;
sei();
while(1)
{
asm volatile ("nop");
volatile N=N+1;
asm volatile ("nop");
asm volatile ("nop");
}
}
Она гадина в цикле ни с нуля считает (просматривал в AVR4). Да и в прерывании, ей почемуто ничего неприсваиваеться. И при компиляции выскакивают такие сообщения:
5.c:25: warning: type defaults to 'int' in declaration of 'N'
Тоесть компилятор незнает что N имеет тип integer, хотя обявлено вроде нормально.
Что бы это могло быть????? Может я уже нетак ее обьявляю??? :cry:
И еще вопросик: неимел ли кто-то дело с функцией dtostrf, которая определена в файле stdlib.h, а тоникак заставить ее работать немогу

_________________
А кота своего я назвал квадратом...


Вернуться наверх
 Профиль  
 
Не в сети
 Заголовок сообщения:
СообщениеДобавлено: Пн апр 09, 2007 20:52:43 
Э...
Аватар пользователя

Зарегистрирован: Ср апр 04, 2007 09:39:14
Сообщений: 2794
Откуда: Москва
Рейтинг сообщения: 0
Может он напомнил что "знаковое слово" будет.

Обчно на Си принято маленькими буквами переменные и функции называть.


Вернуться наверх
 Профиль WWW  
 
Не в сети
 Заголовок сообщения:
СообщениеДобавлено: Пн апр 09, 2007 21:17:19 
Открыл глаза
Аватар пользователя

Зарегистрирован: Пн дек 25, 2006 03:29:15
Сообщений: 56
Откуда: г.Винница Украина
Рейтинг сообщения: 0
tych писал(а):
Может он напомнил что "знаковое слово" будет.


Обьявление у меня как видно -- поза всема функциями :( . Что значит "знаковое слово"???

_________________
А кота своего я назвал квадратом...


Вернуться наверх
 Профиль  
 
Не в сети
 Заголовок сообщения:
СообщениеДобавлено: Пн апр 09, 2007 21:25:09 
Э...
Аватар пользователя

Зарегистрирован: Ср апр 04, 2007 09:39:14
Сообщений: 2794
Откуда: Москва
Рейтинг сообщения: 0
"два байта" - это "слово" а "знаковое" значит и отрицательные числа содержит.

А без знака как по линку выше.


Вернуться наверх
 Профиль WWW  
 
Не в сети
 Заголовок сообщения:
СообщениеДобавлено: Пн апр 09, 2007 21:30:40 
Открыл глаза
Аватар пользователя

Зарегистрирован: Пн дек 25, 2006 03:29:15
Сообщений: 56
Откуда: г.Винница Украина
Рейтинг сообщения: 0
Это я понимаю, но причем тут это??? Неработает та глобальная переменная и ВСЕ. Даже приписывал ей extern для надежности -- молчит гадина.

_________________
А кота своего я назвал квадратом...


Вернуться наверх
 Профиль  
 
Не в сети
 Заголовок сообщения:
СообщениеДобавлено: Вт апр 10, 2007 18:28:43 
Открыл глаза
Аватар пользователя

Зарегистрирован: Пн дек 25, 2006 03:29:15
Сообщений: 56
Откуда: г.Винница Украина
Рейтинг сообщения: 0
При обработке перерывания регист состояния SREG запрещает все перерывания, когда выходит из подпрограммы обработки перерывания, то автоматически разрешаються глобальные перерывания. Регистр SREG по известным данным не где не сохраняеться. Вопрос: Можно ли в подпрограме обработки перерывания запретить общие перерывания, когда произрйдет выход из подпрограмы? Что бы когда вышел, а общие прерывания запрещены??? :idea:

_________________
А кота своего я назвал квадратом...


Вернуться наверх
 Профиль  
 
Не в сети
 Заголовок сообщения:
СообщениеДобавлено: Вт апр 10, 2007 18:38:31 
Э...
Аватар пользователя

Зарегистрирован: Ср апр 04, 2007 09:39:14
Сообщений: 2794
Откуда: Москва
Рейтинг сообщения: 0
Это называется функция в Си. Запретить бессмысленно так как компилятор сам ставит инструкцию RETI по завершению функции.

Вот если функцию не выполнять до конца а выскочить из нее безусловным переходом типа GOTO МЕТКА - тогда бы RETI не выполнилось. но по-моему CVAVR не позволяет покинуть функцию по GOTO.

Но ведь можно наверно в функции вставить АСМ вставку для перехода на какое то место программы ? Може получится вот так хитро выскочить из функции не доделав ее.

Надо эксперементировать вобщем.

А может я наговариваю на CVAVR и GOTO сработает.


Вернуться наверх
 Профиль WWW  
 
Не в сети
 Заголовок сообщения:
СообщениеДобавлено: Вт апр 10, 2007 19:20:56 
Открыл глаза
Аватар пользователя

Зарегистрирован: Пн дек 25, 2006 03:29:15
Сообщений: 56
Откуда: г.Винница Украина
Рейтинг сообщения: 0
В асме есть две команды ret и reti. Превая выход без разрешения общих перерываний другая с. Вообщем. Записал так
asm("ret");
и все. Но опять прикол с этим WinAVR, прыгает оно вообще на середину функции, которая стоит еще перед главной :?

_________________
А кота своего я назвал квадратом...


Вернуться наверх
 Профиль  
 
Показать сообщения за:  Сортировать по:  Вернуться наверх
Начать новую тему Ответить на тему  [ Сообщений: 2044 ]  На страницу 1, 2, 3, 4, 5 ... 103  След.



Часовой пояс: UTC + 3 часа [ Летнее время ]


Кто сейчас на форуме

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 6


Вы не можете начинать темы
Вы не можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения
Вы не можете добавлять вложения

Найти:
Перейти:  


Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group
Русская поддержка phpBB
Extended by Karma MOD © 2007—2012 m157y
Extended by Topic Tags MOD © 2012 m157y