Мелкие вопросы по МК и ПЛИС.
- ARV
- Ум, честь и совесть. И скромность.
- Сообщения: 18544
- Зарегистрирован: Чт дек 28, 2006 08:19:56
- Откуда: Новочеркасск
- Контактная информация:
Re: Мелкие вопросы по МК и ПЛИС.
NC - Not Connected- не подключать, оставить болтающимся (общепринятое обозначение)
VTG - V target - питание целевого МК (терминология Atmel)
VTG - V target - питание целевого МК (терминология Atmel)
если рассматривать человека снизу, покажется, что мозг у него глубоко в жопе
при взгляде на многих сверху ничего не меняется...
Мой уютный бложик... заходите!
при взгляде на многих сверху ничего не меняется...
Мой уютный бложик... заходите!
Re: Мелкие вопросы по МК и ПЛИС.
Посоветуйте пожалуйста, как лучше принимать сигналы в мк в условиях борт сети автомобиля (иномарка). Ну там защита от помех, конденсаторы, резисторы, индуктивности- через что и по какой схематике лучше пропускать сигнал перед принятием его в мк? (обычный сигнал типа импульсов последовательного интерфейса, не ацп)
- Meteor
- Друг Кота
- Сообщения: 3961
- Зарегистрирован: Пн июл 13, 2009 14:37:39
- Откуда: Московская область, наукоград.....
- Контактная информация:
Re: Мелкие вопросы по МК и ПЛИС.
Подробнее о сигнале и функции МК.
Загружая на вход компьютера "мусор", на выходе получим "мусор^32".
PS. Не работаю с: Proteus, Multisim, EWB, Micro-Cap... не спрашивайте даже
PS. Не работаю с: Proteus, Multisim, EWB, Micro-Cap... не спрашивайте даже
-
enq
- Открыл глаза
- Сообщения: 59
- Зарегистрирован: Чт фев 11, 2010 10:31:31
- Откуда: Воронеж
- Контактная информация:
Re: Мелкие вопросы по МК и ПЛИС.
Здрасьте, подкиньте пожалста кусочек кода на ассемблере, для инициализации Таймера 2 в АтМеге16. Работа от внешнего кварца на tosc1/2 32.768 кГц. Без PWM, прерывание по переполнению 1 раз в сек. Нагугленные куски кода инициализации а) не работают (в протеусе), б) пояснение в лучшем случае на английском.
Re: Мелкие вопросы по МК и ПЛИС.
Примерно так: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
seiRe: Мелкие вопросы по МК и ПЛИС.
Метеор, я думаю что у меня возможна проблема с дребезгом контактов замка зажигания. Организовано так- на базу цифрового транзистора поступает 12вольт напряжения борт сети, транзистор открывается и сажает ногу мк на землю (в обычном состоянии она подтянута к питанию мк 5в). мк отслеживает низкий лог уровень на этой ноге и запускает программу. Понимаю, что можно сделать программную коррекцию дребезга- типа считать несколько уровней и потом запускать программу, но интересует как бороться схематикой с дребезгом. получается транзистор может колебаться несколько раз в зависимости от износа контактной группы замка зажигания.
- Gudd-Head
- Друг Кота
- Сообщения: 20092
- Зарегистрирован: Чт сен 18, 2008 12:27:21
- Откуда: Столица Мира Санкт-Петербург
Re: Мелкие вопросы по МК и ПЛИС.
ValBag писал(а):Примерно так:Код: Выделить всё
sli
...
Наверное, cli?
Alexeus писал(а):интересует как бороться схематикой с дребезгом.
Ставить ФНЧ
[ Всё дело не столько в вашей глупости, сколько в моей гениальности ] [ Правильно заданный вопрос содержит в себе половину ответа ]
Re: Мелкие вопросы по МК и ПЛИС.
а можно парралельно замыкателю поставить конденсатор.
Не умеешь - не берись, но не взявшись не научишься...
Re: Мелкие вопросы по МК и ПЛИС.
Разумеется - "очепятка"Gudd-Head писал(а):Наверное, cli?
- Meteor
- Друг Кота
- Сообщения: 3961
- Зарегистрирован: Пн июл 13, 2009 14:37:39
- Откуда: Московская область, наукоград.....
- Контактная информация:
Re: Мелкие вопросы по МК и ПЛИС.
Alexeus писал(а):Метеор, я думаю что у меня возможна проблема с дребезгом контактов замка зажигания....Понимаю, что можно сделать программную коррекцию дребезга- типа считать несколько уровней и потом запускать программу, но интересует как бороться схематикой с дребезгом. получается транзистор может колебаться несколько раз в зависимости от износа контактной группы замка зажигания.
Поставьте таймер типа NE555 в режиме одновибратора. Длительность импульса нужно сделать шире времени дребезга. Выход уже подавать на МК
Загружая на вход компьютера "мусор", на выходе получим "мусор^32".
PS. Не работаю с: Proteus, Multisim, EWB, Micro-Cap... не спрашивайте даже
PS. Не работаю с: Proteus, Multisim, EWB, Micro-Cap... не спрашивайте даже
-
enq
- Открыл глаза
- Сообщения: 59
- Зарегистрирован: Чт фев 11, 2010 10:31:31
- Откуда: Воронеж
- Контактная информация:
Re: Мелкие вопросы по МК и ПЛИС.
ValBag, спасибище, таймер завелся. НО: в протеусе по прерыванию выполняется не Timer2_OVF (с адреса $08), как в даташите, а Timer1_OVF, с адреса $010, который неизвестно откуда взялся. Таблица векторов скатана с даташита. Где косяк?
Re: Мелкие вопросы по МК и ПЛИС.
Странно. Приложите код (файлом).enq писал(а):...Где косяк?
- ARV
- Ум, честь и совесть. И скромность.
- Сообщения: 18544
- Зарегистрирован: Чт дек 28, 2006 08:19:56
- Откуда: Новочеркасск
- Контактная информация:
Re: Мелкие вопросы по МК и ПЛИС.
enq писал(а):ValBag, спасибище, таймер завелся. НО: в протеусе по прерыванию выполняется не Timer2_OVF (с адреса $08), как в даташите, а Timer1_OVF, с адреса $010, который неизвестно откуда взялся. Таблица векторов скатана с даташита. Где косяк?
дайте угадаю: табличка в виде набора RJMP-ов? стопудово тут и косяк
если рассматривать человека снизу, покажется, что мозг у него глубоко в жопе
при взгляде на многих сверху ничего не меняется...
Мой уютный бложик... заходите!
при взгляде на многих сверху ничего не меняется...
Мой уютный бложик... заходите!
-
enq
- Открыл глаза
- Сообщения: 59
- Зарегистрирован: Чт фев 11, 2010 10:31:31
- Откуда: Воронеж
- Контактная информация:
Re: Мелкие вопросы по МК и ПЛИС.
Да, угадал, набор RJMP'ов. Но в том порядке, в котором даны в даташите, стр. 45. В аттаче код, как просили выше. (в коде еще опрос клавы и работа с UART, проект большой)
- Вложения
-
- code.asm
- ValBag просил код
- (4.97 КБ) 233 скачивания
Re: Мелкие вопросы по МК и ПЛИС.
enq
Причин может быть несколько:
1. Похоже есть мой промах. Определения .def я опрометчиво использовал из СИ. Уточните в m16def.inc действительные обозначения регистров и битов в ассемблере, для необходимой правки кода инициализации таймера 2.
2. Если используете не все прерывания, то лучше сделать так:А можно так:3. В конце инициализации таймеров, сбросить все флаги, которые могли случайно возникнуть в регистре TIFR. Это предотвратит однократное первое срабатывание прерывания от неинициализированного таймера, в случае ошибочного флага.
Причин может быть несколько:
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
; и т. д.Код: Выделить всё
...
ldi R16, 0xFF
out TIFR, R16
...-
enq
- Открыл глаза
- Сообщения: 59
- Зарегистрирован: Чт фев 11, 2010 10:31:31
- Откуда: Воронеж
- Контактная информация:
Re: Мелкие вопросы по МК и ПЛИС.
Флаги, имхо, не причем. Таймер же работает, тикает раз в секунду, мигает диодиком. просто возникает не то прерывание. Попробую Подправить таблицу векторов.
UPD: Спасибо, вопрос решен, вопрос снят. Привел таблицу векторов к такому виду:
Теперь тикает правильное прерывание.
UPD: Спасибо, вопрос решен, вопрос снят. Привел таблицу векторов к такому виду:
Код: Выделить всё
.cseg
.org 0
rjmp RESET ; Reset Handler
.org $008
rjmp TIMER2_OVF ; Timer2 OVERFLOW
.org $016
rjmp UART_RXC
Теперь тикает правильное прерывание.
Re: Мелкие вопросы по МК и ПЛИС.
Ну и лады... Кстати обозначения .def аналогичны. Так что зря я сокрушался.enq писал(а):Теперь тикает правильное прерывание.
- ARV
- Ум, честь и совесть. И скромность.
- Сообщения: 18544
- Зарегистрирован: Чт дек 28, 2006 08:19:56
- Откуда: Новочеркасск
- Контактная информация:
Re: Мелкие вопросы по МК и ПЛИС.
не можно так, а НУЖНО ТОЛЬКО ТАК!!! и обязательно вместо адреса 0008 указывать СИМВОЛЬНУЮ КОНСТАНТУ соответствующего АДРЕСА ВЕКТОРА.ValBag писал(а):А можно так:Код: Выделить всё
.cseg
.org 0
rjmp START
.org 0x0008
rjmp TIMER2OVF
; и т. д.
и то, что проблема решилась именно благодаря этому, лишний раз подтверждает мою правоту. не делайте НЕПРАВИЛЬНО, делайте ПРАВИЛЬНО - и будет вам счастье
если рассматривать человека снизу, покажется, что мозг у него глубоко в жопе
при взгляде на многих сверху ничего не меняется...
Мой уютный бложик... заходите!
при взгляде на многих сверху ничего не меняется...
Мой уютный бложик... заходите!
-
SII
- Вымогатель припоя
- Сообщения: 635
- Зарегистрирован: Пт янв 30, 2009 14:50:35
- Откуда: Солнечногорск
Re: Мелкие вопросы по МК и ПЛИС.
ARV писал(а):не можно так, а НУЖНО ТОЛЬКО ТАК!!![/size][/color] и обязательно вместо адреса 0008 указывать СИМВОЛЬНУЮ КОНСТАНТУ соответствующего АДРЕСА ВЕКТОРА
Это Ваше личное мнение, а не бесспорная истина в последней инстанции. Лично я считаю, что так делать как раз неправильно, а правильно -- описывать все векторы подряд под конкретный тип контроллера. Впрочем, холиварить не собираюсь.
