Мелкие вопросы по МК и ПЛИС.

Если ваш вопрос не влез ни в одну из вышеперечисленных тем, вам сюда.
Аватара пользователя
ARV
Ум, честь и совесть. И скромность.
Сообщения: 18544
Зарегистрирован: Чт дек 28, 2006 08:19:56
Откуда: Новочеркасск
Контактная информация:

Re: Мелкие вопросы по МК и ПЛИС.

Сообщение ARV »

SII писал(а):Лично я считаю, что так делать как раз неправильно, а правильно -- описывать все векторы подряд под конкретный тип контроллера.
да без проблем: каждый имеет право на ошибку :)))
если рассматривать человека снизу, покажется, что мозг у него глубоко в жопе
при взгляде на многих сверху ничего не меняется...

Мой уютный бложик... заходите!
Аватара пользователя
Alexeus
Вымогатель припоя
Сообщения: 690
Зарегистрирован: Вс мар 04, 2007 01:17:12

Re: Мелкие вопросы по МК и ПЛИС.

Сообщение Alexeus »

Meteor писал(а):
Alexeus писал(а):Метеор, я думаю что у меня возможна проблема с дребезгом контактов замка зажигания....Понимаю, что можно сделать программную коррекцию дребезга- типа считать несколько уровней и потом запускать программу, но интересует как бороться схематикой с дребезгом. получается транзистор может колебаться несколько раз в зависимости от износа контактной группы замка зажигания.

Поставьте таймер типа NE555 в режиме одновибратора. Длительность импульса нужно сделать шире времени дребезга. Выход уже подавать на МК


Отлично! Кардинальный метод )
А фильтр какой нть попроще на пассивных элементах как сделать? RC или какой другой?
Аватара пользователя
Meteor
Друг Кота
Сообщения: 3961
Зарегистрирован: Пн июл 13, 2009 14:37:39
Откуда: Московская область, наукоград.....
Контактная информация:

Re: Мелкие вопросы по МК и ПЛИС.

Сообщение Meteor »

Не так давно подключал свою приблуду. Решение было такое: сигналы с 12вольтовым уровнем подавались на светодиоды оптронов (применяю TLP521-4). Сигнал с выходов оптронов подавать на формирователи (тригер шмидта) и/или вывод (вход) запуска таймера NE555 (требования прежние, см. предыдущий тематический пост).
Загружая на вход компьютера "мусор", на выходе получим "мусор^32".
PS. Не работаю с: Proteus, Multisim, EWB, Micro-Cap... не спрашивайте даже
Аватара пользователя
Alexeus
Вымогатель припоя
Сообщения: 690
Зарегистрирован: Вс мар 04, 2007 01:17:12

Re: Мелкие вопросы по МК и ПЛИС.

Сообщение Alexeus »

я понял, что формировать лог.уровень на м/с можно, но а все же на пассивных элементах более-менее сгладить дребезг можно- как?
Аватара пользователя
Gudd-Head
Друг Кота
Сообщения: 20091
Зарегистрирован: Чт сен 18, 2008 12:27:21
Откуда: Столица Мира Санкт-Петербург

Re: Мелкие вопросы по МК и ПЛИС.

Сообщение Gudd-Head »

Alexeus писал(а):я понял, что формировать лог.уровень на м/с можно, но а все же на пассивных элементах более-менее сгладить дребезг можно- как?

Вы же сами себе ответили - ставьте RC фильтр.
[ Всё дело не столько в вашей глупости, сколько в моей гениальности ] [ Правильно заданный вопрос содержит в себе половину ответа ]
Аватара пользователя
Meteor
Друг Кота
Сообщения: 3961
Зарегистрирован: Пн июл 13, 2009 14:37:39
Откуда: Московская область, наукоград.....
Контактная информация:

Re: Мелкие вопросы по МК и ПЛИС.

Сообщение Meteor »

Реализация подавителя зависит от характера помехи. Если длительность не большая, то вполне подойдет RC-цепочка, иначе - придется думать, ведь не всегда хочется ставить конденсаторы емкостью в тыщи мкФ.
Загружая на вход компьютера "мусор", на выходе получим "мусор^32".
PS. Не работаю с: Proteus, Multisim, EWB, Micro-Cap... не спрашивайте даже
Chettuser

Re: Мелкие вопросы по МК и ПЛИС.

Сообщение Chettuser »

Вопрос по математическим библиотекам: можно ли как то обойтись без них если нужно посчитать степень?:

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

i=pow(2,a);

Просто слишком много памяти отъедает у МК.
Спасибо.
Аватара пользователя
Gudd-Head
Друг Кота
Сообщения: 20091
Зарегистрирован: Чт сен 18, 2008 12:27:21
Откуда: Столица Мира Санкт-Петербург

Re: Мелкие вопросы по МК и ПЛИС.

Сообщение Gudd-Head »

Chettuser писал(а):

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

i=pow(2,a);

Просто слишком много памяти отъедает у МК.

Вы двойку хотите в степень возводить?
[ Всё дело не столько в вашей глупости, сколько в моей гениальности ] [ Правильно заданный вопрос содержит в себе половину ответа ]
Chettuser

Re: Мелкие вопросы по МК и ПЛИС.

Сообщение Chettuser »

Отбой. Реализовал сдвигом влево.
Аватара пользователя
Gudd-Head
Друг Кота
Сообщения: 20091
Зарегистрирован: Чт сен 18, 2008 12:27:21
Откуда: Столица Мира Санкт-Петербург

Re: Мелкие вопросы по МК и ПЛИС.

Сообщение Gudd-Head »

Chettuser писал(а):Реализовал сдвигом влево.

Гениально :idea:
[ Всё дело не столько в вашей глупости, сколько в моей гениальности ] [ Правильно заданный вопрос содержит в себе половину ответа ]
Chettuser

Re: Мелкие вопросы по МК и ПЛИС.

Сообщение Chettuser »

Gudd-Head писал(а):Гениально :idea:

Хорош ёрничать! Ну не все ж гении. Я вообще самоучка. Так что мне простительно :oops:
Аватара пользователя
vuln
Открыл глаза
Сообщения: 46
Зарегистрирован: Чт июл 02, 2009 12:08:24
Откуда: Казань

Re: Мелкие вопросы по МК и ПЛИС.

Сообщение vuln »

всем привет! есть вопрос:
делаю самодельный ламинатор из печки принтера. хочу его температуру регулировать по средствам ШИМ, качестве датчика буду использовать штатный терморезистор от принтера
точность в принципе не важно, пойдет ли вот такая схема?:
Вложения
adc0.jpg
(108.76 КБ) 384 скачивания
Chettuser

Re: Мелкие вопросы по МК и ПЛИС.

Сообщение Chettuser »

Калибровать надо будет.
Аватара пользователя
Roman Venom
Сверлит текстолит когтями
Сообщения: 1135
Зарегистрирован: Сб июл 11, 2009 18:42:21
Откуда: Украина, г.Николаев

Re: Мелкие вопросы по МК и ПЛИС.

Сообщение Roman Venom »

Простейшая прога.... в протеусе работает, на макетке - нет. Шью через понипрог. Прошивается всё нормально, но на ногах низкий уровень... Это первый раз когда я авр прошиваю...чувствую из-за какой-то фигни не запускается прога :oops: .
.device ATmega16
.nolist
.include "D:\Program Files\Atmel\AVR Studio\Appnotes\m16def.inc"
.list

.def work=r16

rjmp init
init:
ser work
out DDRB,work
out DDRD,work
SID:
out PORTB,work
out PORTD,work


rjmp SID
Успех - императив!
Stepan
Встал на лапы
Сообщения: 126
Зарегистрирован: Пн мар 16, 2009 07:37:42
Откуда: Новосибирск

Re: Мелкие вопросы по МК и ПЛИС.

Сообщение Stepan »

В начале даташит читай внимательно, ты пишешь программу в вектора прерываний, вот и глючит всё. rjmp Init - это вектор резета, он на месте, но потом нужно отступить байт эдак 40 с помощью .org , чтоб не промахнуться и не напороться на другие %).
меньше слов - больше дела
Аватара пользователя
Roman Venom
Сверлит текстолит когтями
Сообщения: 1135
Зарегистрирован: Сб июл 11, 2009 18:42:21
Откуда: Украина, г.Николаев

Re: Мелкие вопросы по МК и ПЛИС.

Сообщение Roman Venom »

если честно я не очень понял... в пиках надо было прописывать org 0x00 в директивах. Тут надо .org 0x40? Скажи, пожалуйста, куда конкретно вставить эту директиву.
.device ATmega16
.nolist
.include "D:\Program Files\Atmel\AVR Studio\Appnotes\m16def.inc"
.list

.def work=r16
.def work1=r17
.org 0x40

rjmp init


delay2:
ldi work1,0
del_1:
inc work1
cpi work1,254
brne del_1
rjmp del_0

delay1:
ldi work,0
del_0:
inc work
cpi work,255
brne delay2
ret




init:

call delay1

ser work
out DDRB,work
out DDRD,work
SID:
out PORTB,work
out PORTD,work


rjmp SID
Успех - императив!
Аватара пользователя
Meteor
Друг Кота
Сообщения: 3961
Зарегистрирован: Пн июл 13, 2009 14:37:39
Откуда: Московская область, наукоград.....
Контактная информация:

Re: Мелкие вопросы по МК и ПЛИС.

Сообщение Meteor »

Ставлю данную директиву в сегменте .CSEG со значениями:
0x0000 перед таблицей векторов,
0x0050 перед меткой RESET,
0x.... В том месте где хочу разместить обработку прерываний или таблицу например
Загружая на вход компьютера "мусор", на выходе получим "мусор^32".
PS. Не работаю с: Proteus, Multisim, EWB, Micro-Cap... не спрашивайте даже
Аватара пользователя
Gudd-Head
Друг Кота
Сообщения: 20091
Зарегистрирован: Чт сен 18, 2008 12:27:21
Откуда: Столица Мира Санкт-Петербург

Re: Мелкие вопросы по МК и ПЛИС.

Сообщение Gudd-Head »

Roman Venom писал(а):rjmp init
init:
ser work
out DDRB,work
out DDRD,work
SID:
out PORTB,work
out PORTD,work
rjmp SID

1. Зачем делать rjmp на метку, которая идёт сразу за командой rjmp???
2. Зачем циклично устанавливать на портах "1", если это достаточно сделать один раз?
3. Если не используются прерывания, прогу можно начинать с самого начала флэша.
[ Всё дело не столько в вашей глупости, сколько в моей гениальности ] [ Правильно заданный вопрос содержит в себе половину ответа ]
Stepan
Встал на лапы
Сообщения: 126
Зарегистрирован: Пн мар 16, 2009 07:37:42
Откуда: Новосибирск

Re: Мелкие вопросы по МК и ПЛИС.

Сообщение Stepan »

в начале памяти программ у AVR обычно находится таблица векторов прерываний, туда пишутся jmp'ы на соответствующие функции обработки прерываний, или ниче не пишется. поэтому ты туда не пиши, ты сюда пиши, а то снег в башка попадет... вот у тебя стоит первый rjmp Init это вектор прерывания reset с которого начинает выполняться программа, а дальше нужно перепрыгнуть через таблицу векторов и писать программу вне её, параллельно почитывая базовую литературу ;).
меньше слов - больше дела
Аватара пользователя
Roman Venom
Сверлит текстолит когтями
Сообщения: 1135
Зарегистрирован: Сб июл 11, 2009 18:42:21
Откуда: Украина, г.Николаев

Re: Мелкие вопросы по МК и ПЛИС.

Сообщение Roman Venom »

Stepan
Спасибо, я читаю книгу Мортона, но там ничего такого не встретил. В примерах программ в приложениях так же ничего такого нету... Поэтому и написал на форум.
вот у тебя стоит первый rjmp Init это вектор прерывания reset с которого начинает выполняться программа, а дальше нужно перепрыгнуть через таблицу векторов и писать программу вне её

сейчас я понял.
Поставил
.org 0x30 после rjmp init.
Однако программа работает если только есть .org 0x40

Почему так?


.device ATmega16
.nolist
.include "D:\Program Files\Atmel\AVR Studio\Appnotes\m16def.inc"
.list

.def work=r16
.def work1=r17
.org 0x00

rjmp init

.org 0x30




delay2:
ldi work1,0
del_1:
inc work1; ув на 1
cpi work1,105;сравнить с 5. если=перепрыгнуть команду
brne del_1
rjmp del_0

delay1:
ldi work,0
del_0:
inc work
cpi work,105
brne delay2
ret




init:
.org 0x40
call delay1

ser work
out DDRD,work
SID:
out PORTD,work
end:

rjmp end
Успех - императив!
Ответить

Вернуться в «Разные вопросы по МК»