Например TDA7294

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





Текущее время: Пт апр 19, 2024 01:56:01

Часовой пояс: UTC + 3 часа


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



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

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


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

Код:

#include <avr>

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



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


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

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

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

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

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

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


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

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

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


Вернуться наверх
 
PCBWay - всего $5 за 10 печатных плат, первый заказ для новых клиентов БЕСПЛАТЕН

Сборка печатных плат от $30 + БЕСПЛАТНАЯ доставка по всему миру + трафарет

Онлайн просмотровщик Gerber-файлов от PCBWay + Услуги 3D печати
Не в сети
 Заголовок сообщения:
СообщениеДобавлено: Сб апр 07, 2007 21:47:21 
Открыл глаза
Аватар пользователя

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


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

_________________
А кота своего я назвал квадратом...
Вернуться наверх
 
Выбираем схему BMS для заряда литий-железофосфатных (LiFePO4) аккумуляторов

Обязательным условием долгой и стабильной работы Li-FePO4-аккумуляторов, в том числе и производства EVE Energy, является применение специализированных BMS-микросхем. Литий-железофосфатные АКБ отличаются такими характеристиками, как высокая многократность циклов заряда-разряда, безопасность, возможность быстрой зарядки, устойчивость к буферному режиму работы и приемлемая стоимость. Но для этих АКБ очень важен контроль процесса заряда и разряда для избегания воздействия внешнего зарядного напряжения после достижения 100% заряда. Инженеры КОМПЭЛ подготовили список таких решений от разных производителей.

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

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


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

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

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

это TIMSK=0x01; ?

а какой МК ?

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

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

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


Вернуться наверх
 
Новый аккумулятор EVE серии PLM для GSM-трекеров, работающих в жёстких условиях (до -40°С)

Компания EVE выпустила новый аккумулятор серии PLM, сочетающий в себе высокую безопасность, длительный срок службы, широкий температурный диапазон и высокую токоотдачу даже при отрицательной температуре. Эти аккумуляторы поддерживают заряд при температуре от -40/-20°С (сниженным значением тока), безопасны (не воспламеняются и не взрываются) при механическом повреждении (протыкание и сдавливание), устойчивы к вибрации. Они могут применяться как для автотранспорта (трекеры, маячки, сигнализация), так и для промышленных устройств мониторинга, IoT-устройств.

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

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

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


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

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


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

Зарегистрирован: Пн дек 25, 2006 02: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 06:36:33 
Э...
Аватар пользователя

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


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

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

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


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

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


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

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

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


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

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


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

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

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


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

Зарегистрирован: Пн дек 25, 2006 02: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 19:52:43 
Э...
Аватар пользователя

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

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


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

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


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

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


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

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

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


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

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

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


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

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

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


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

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

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

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

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

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


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

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

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


Вернуться наверх
 
Показать сообщения за:  Сортировать по:  Вернуться наверх
Начать новую тему Ответить на тему  [ Сообщений: 2102 ]  1, , , , ...  

Часовой пояс: UTC + 3 часа


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

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


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

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


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