Страница 122 из 628
Re: Мелкие вопросы по МК и ПЛИС.
Добавлено: Пн окт 18, 2010 08:00:54
ARV
NC - Not Connected- не подключать, оставить болтающимся (общепринятое обозначение)
VTG - V target - питание целевого МК (терминология Atmel)
Re: Мелкие вопросы по МК и ПЛИС.
Добавлено: Пн окт 18, 2010 13:10:05
uwrtey
спасибо ARV
Re: Мелкие вопросы по МК и ПЛИС.
Добавлено: Вт окт 19, 2010 22:39:47
Alexeus
Посоветуйте пожалуйста, как лучше принимать сигналы в мк в условиях борт сети автомобиля (иномарка). Ну там защита от помех, конденсаторы, резисторы, индуктивности- через что и по какой схематике лучше пропускать сигнал перед принятием его в мк? (обычный сигнал типа импульсов последовательного интерфейса, не ацп)
Re: Мелкие вопросы по МК и ПЛИС.
Добавлено: Ср окт 20, 2010 07:05:17
Meteor
Подробнее о сигнале и функции МК.
Re: Мелкие вопросы по МК и ПЛИС.
Добавлено: Ср окт 20, 2010 11:55:45
enq
Здрасьте, подкиньте пожалста кусочек кода на ассемблере, для инициализации Таймера 2 в АтМеге16. Работа от внешнего кварца на tosc1/2 32.768 кГц. Без PWM, прерывание по переполнению 1 раз в сек. Нагугленные куски кода инициализации а) не работают (в протеусе), б) пояснение в лучшем случае на английском.
Re: Мелкие вопросы по МК и ПЛИС.
Добавлено: Ср окт 20, 2010 16:22:31
ValBag
enq писал(а): ...для инициализации Таймера 2 в АтМеге16. Работа от внешнего кварца на tosc1/2 32.768 кГц. прерывание по переполнению 1 раз в сек.
Примерно так:
Код: Выделить всё
sli
ldi R16, (1<<AS2) ; асинхронный режим
out ASSR, R16
ldi R16, 0x00
out TCNT2, R16
ldi R16, (1<<TOIE2) ; флаг разрешения прерывания по переполнению Т2
out TIMSK, R16
ldi R16, ((1<<CS22)|(1<<CS20)) ; 32768/128
out TCCR2, R16
sei
Re: Мелкие вопросы по МК и ПЛИС.
Добавлено: Ср окт 20, 2010 17:50:16
Alexeus
Метеор, я думаю что у меня возможна проблема с дребезгом контактов замка зажигания. Организовано так- на базу цифрового транзистора поступает 12вольт напряжения борт сети, транзистор открывается и сажает ногу мк на землю (в обычном состоянии она подтянута к питанию мк 5в). мк отслеживает низкий лог уровень на этой ноге и запускает программу. Понимаю, что можно сделать программную коррекцию дребезга- типа считать несколько уровней и потом запускать программу, но интересует как бороться схематикой с дребезгом. получается транзистор может колебаться несколько раз в зависимости от износа контактной группы замка зажигания.
Re: Мелкие вопросы по МК и ПЛИС.
Добавлено: Ср окт 20, 2010 17:56:03
Gudd-Head
ValBag писал(а):Примерно так:
Наверное,
cli?
Alexeus писал(а):интересует как бороться схематикой с дребезгом.
Ставить ФНЧ

Re: Мелкие вопросы по МК и ПЛИС.
Добавлено: Ср окт 20, 2010 18:03:25
Arlleex
а можно парралельно замыкателю поставить конденсатор.
Re: Мелкие вопросы по МК и ПЛИС.
Добавлено: Ср окт 20, 2010 18:07:14
ValBag
Gudd-Head писал(а):Наверное,
cli?

Разумеется - "очепятка"

Re: Мелкие вопросы по МК и ПЛИС.
Добавлено: Ср окт 20, 2010 18:30:29
Meteor
Alexeus писал(а):Метеор, я думаю что у меня возможна проблема с дребезгом контактов замка зажигания....Понимаю, что можно сделать программную коррекцию дребезга- типа считать несколько уровней и потом запускать программу, но интересует как бороться схематикой с дребезгом. получается транзистор может колебаться несколько раз в зависимости от износа контактной группы замка зажигания.
Поставьте таймер типа NE555 в режиме одновибратора. Длительность импульса нужно сделать шире времени дребезга. Выход уже подавать на МК
Re: Мелкие вопросы по МК и ПЛИС.
Добавлено: Ср окт 20, 2010 19:04:19
enq
ValBag, спасибище, таймер завелся. НО: в протеусе по прерыванию выполняется не Timer2_OVF (с адреса $08), как в даташите, а Timer1_OVF, с адреса $010, который неизвестно откуда взялся. Таблица векторов скатана с даташита. Где косяк?
Re: Мелкие вопросы по МК и ПЛИС.
Добавлено: Ср окт 20, 2010 19:52:08
ValBag
enq писал(а):...Где косяк?
Странно. Приложите код (файлом).
Re: Мелкие вопросы по МК и ПЛИС.
Добавлено: Ср окт 20, 2010 19:54:18
ARV
enq писал(а):ValBag, спасибище, таймер завелся. НО: в протеусе по прерыванию выполняется не Timer2_OVF (с адреса $08), как в даташите, а Timer1_OVF, с адреса $010, который неизвестно откуда взялся. Таблица векторов скатана с даташита. Где косяк?
дайте угадаю: табличка в виде набора RJMP-ов? стопудово тут и косяк

Re: Мелкие вопросы по МК и ПЛИС.
Добавлено: Ср окт 20, 2010 20:33:49
enq
Да, угадал, набор RJMP'ов. Но в том порядке, в котором даны в даташите, стр. 45. В аттаче код, как просили выше. (в коде еще опрос клавы и работа с UART, проект большой)
Re: Мелкие вопросы по МК и ПЛИС.
Добавлено: Ср окт 20, 2010 22:32:31
ValBag
enq
Причин может быть несколько:
1. Похоже есть мой промах. Определения .def я опрометчиво использовал из СИ. Уточните в m16def.inc действительные обозначения регистров и битов в ассемблере, для необходимой правки кода инициализации таймера 2.
2. Если используете не все прерывания, то лучше сделать так:
Код: Выделить всё
.cseg
.org 0
rjmp START
reti
reti
reti
rjmp TIMER2OVF
reti
reti
...
reti
...
START:
....
TIMER2OVF:
...
А можно так:
Код: Выделить всё
.cseg
.org 0
rjmp START
.org 0x0008
rjmp TIMER2OVF
; и т. д.
3. В конце инициализации таймеров, сбросить все флаги, которые могли случайно возникнуть в регистре TIFR. Это предотвратит однократное первое срабатывание прерывания от неинициализированного таймера, в случае ошибочного флага.
Re: Мелкие вопросы по МК и ПЛИС.
Добавлено: Ср окт 20, 2010 23:11:33
enq
Флаги, имхо, не причем. Таймер же работает, тикает раз в секунду, мигает диодиком. просто возникает
не то прерывание. Попробую Подправить таблицу векторов.
UPD: Спасибо, вопрос решен, вопрос снят. Привел таблицу векторов к такому виду:
Код: Выделить всё
.cseg
.org 0
rjmp RESET ; Reset Handler
.org $008
rjmp TIMER2_OVF ; Timer2 OVERFLOW
.org $016
rjmp UART_RXC
Теперь тикает правильное прерывание.
Re: Мелкие вопросы по МК и ПЛИС.
Добавлено: Ср окт 20, 2010 23:29:46
ValBag
enq писал(а):Теперь тикает правильное прерывание.
Ну и лады... Кстати обозначения .def аналогичны. Так что зря я сокрушался.
Re: Мелкие вопросы по МК и ПЛИС.
Добавлено: Ср окт 20, 2010 23:43:15
ARV
ValBag писал(а):А можно так:
Код: Выделить всё
.cseg
.org 0
rjmp START
.org 0x0008
rjmp TIMER2OVF
; и т. д.
не можно так, а НУЖНО ТОЛЬКО ТАК!!! и
обязательно вместо адреса 0008 указывать СИМВОЛЬНУЮ КОНСТАНТУ соответствующего АДРЕСА ВЕКТОРА.
и то, что проблема решилась именно благодаря этому, лишний раз подтверждает мою правоту. не делайте НЕПРАВИЛЬНО, делайте ПРАВИЛЬНО - и будет вам счастье

Re: Мелкие вопросы по МК и ПЛИС.
Добавлено: Чт окт 21, 2010 01:10:22
SII
ARV писал(а):не можно так, а НУЖНО ТОЛЬКО ТАК!!![/size][/color] и обязательно вместо адреса 0008 указывать СИМВОЛЬНУЮ КОНСТАНТУ соответствующего АДРЕСА ВЕКТОРА
Это Ваше личное мнение, а не бесспорная истина в последней инстанции. Лично я считаю, что так делать как раз неправильно, а правильно -- описывать все векторы подряд под конкретный тип контроллера. Впрочем, холиварить не собираюсь.