Страница 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. Это предотвратит однократное первое срабатывание прерывания от неинициализированного таймера, в случае ошибочного флага.

Код: Выделить всё

...
ldi R16, 0xFF
out TIFR, R16
...

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 указывать СИМВОЛЬНУЮ КОНСТАНТУ соответствующего АДРЕСА ВЕКТОРА
Это Ваше личное мнение, а не бесспорная истина в последней инстанции. Лично я считаю, что так делать как раз неправильно, а правильно -- описывать все векторы подряд под конкретный тип контроллера. Впрочем, холиварить не собираюсь.