да без проблем: каждый имеет право на ошибкуSII писал(а):Лично я считаю, что так делать как раз неправильно, а правильно -- описывать все векторы подряд под конкретный тип контроллера.
Мелкие вопросы по МК и ПЛИС.
- ARV
- Ум, честь и совесть. И скромность.
- Сообщения: 18602
- Зарегистрирован: Чт дек 28, 2006 08:19:56
- Откуда: Новочеркасск
- Контактная информация:
Re: Мелкие вопросы по МК и ПЛИС.
если рассматривать человека снизу, покажется, что мозг у него глубоко в жопе
при взгляде на многих сверху ничего не меняется...
Мой уютный бложик... заходите!
при взгляде на многих сверху ничего не меняется...
Мой уютный бложик... заходите!
- Реклама
Re: Мелкие вопросы по МК и ПЛИС.
Отлично! Кардинальный метод )Meteor писал(а):Поставьте таймер типа NE555 в режиме одновибратора. Длительность импульса нужно сделать шире времени дребезга. Выход уже подавать на МКAlexeus писал(а):Метеор, я думаю что у меня возможна проблема с дребезгом контактов замка зажигания....Понимаю, что можно сделать программную коррекцию дребезга- типа считать несколько уровней и потом запускать программу, но интересует как бороться схематикой с дребезгом. получается транзистор может колебаться несколько раз в зависимости от износа контактной группы замка зажигания.
А фильтр какой нть попроще на пассивных элементах как сделать? RC или какой другой?
- Meteor
- Друг Кота
- Сообщения: 3961
- Зарегистрирован: Пн июл 13, 2009 14:37:39
- Откуда: Московская область, наукоград.....
- Контактная информация:
Re: Мелкие вопросы по МК и ПЛИС.
Не так давно подключал свою приблуду. Решение было такое: сигналы с 12вольтовым уровнем подавались на светодиоды оптронов (применяю TLP521-4). Сигнал с выходов оптронов подавать на формирователи (тригер шмидта) и/или вывод (вход) запуска таймера NE555 (требования прежние, см. предыдущий тематический пост).
Загружая на вход компьютера "мусор", на выходе получим "мусор^32".
PS. Не работаю с: Proteus, Multisim, EWB, Micro-Cap... не спрашивайте даже
PS. Не работаю с: Proteus, Multisim, EWB, Micro-Cap... не спрашивайте даже
Re: Мелкие вопросы по МК и ПЛИС.
я понял, что формировать лог.уровень на м/с можно, но а все же на пассивных элементах более-менее сгладить дребезг можно- как?
- Gudd-Head
- Друг Кота
- Сообщения: 20092
- Зарегистрирован: Чт сен 18, 2008 12:27:21
- Откуда: Столица Мира Санкт-Петербург
Re: Мелкие вопросы по МК и ПЛИС.
Вы же сами себе ответили - ставьте RC фильтр.Alexeus писал(а):я понял, что формировать лог.уровень на м/с можно, но а все же на пассивных элементах более-менее сгладить дребезг можно- как?
[ Всё дело не столько в вашей глупости, сколько в моей гениальности ] [ Правильно заданный вопрос содержит в себе половину ответа ]
- Реклама
- Meteor
- Друг Кота
- Сообщения: 3961
- Зарегистрирован: Пн июл 13, 2009 14:37:39
- Откуда: Московская область, наукоград.....
- Контактная информация:
Re: Мелкие вопросы по МК и ПЛИС.
Реализация подавителя зависит от характера помехи. Если длительность не большая, то вполне подойдет RC-цепочка, иначе - придется думать, ведь не всегда хочется ставить конденсаторы емкостью в тыщи мкФ.
Загружая на вход компьютера "мусор", на выходе получим "мусор^32".
PS. Не работаю с: Proteus, Multisim, EWB, Micro-Cap... не спрашивайте даже
PS. Не работаю с: Proteus, Multisim, EWB, Micro-Cap... не спрашивайте даже
-
Chettuser
Re: Мелкие вопросы по МК и ПЛИС.
Вопрос по математическим библиотекам: можно ли как то обойтись без них если нужно посчитать степень?:
Просто слишком много памяти отъедает у МК.
Спасибо.
Код: Выделить всё
i=pow(2,a);Спасибо.
- Gudd-Head
- Друг Кота
- Сообщения: 20092
- Зарегистрирован: Чт сен 18, 2008 12:27:21
- Откуда: Столица Мира Санкт-Петербург
Re: Мелкие вопросы по МК и ПЛИС.
Вы двойку хотите в степень возводить?Chettuser писал(а):Просто слишком много памяти отъедает у МК.Код: Выделить всё
i=pow(2,a);
[ Всё дело не столько в вашей глупости, сколько в моей гениальности ] [ Правильно заданный вопрос содержит в себе половину ответа ]
- Gudd-Head
- Друг Кота
- Сообщения: 20092
- Зарегистрирован: Чт сен 18, 2008 12:27:21
- Откуда: Столица Мира Санкт-Петербург
Re: Мелкие вопросы по МК и ПЛИС.
ГениальноChettuser писал(а):Реализовал сдвигом влево.
[ Всё дело не столько в вашей глупости, сколько в моей гениальности ] [ Правильно заданный вопрос содержит в себе половину ответа ]
-
Chettuser
Re: Мелкие вопросы по МК и ПЛИС.
Хорош ёрничать! Ну не все ж гении. Я вообще самоучка. Так что мне простительноGudd-Head писал(а):Гениально
Re: Мелкие вопросы по МК и ПЛИС.
всем привет! есть вопрос:
делаю самодельный ламинатор из печки принтера. хочу его температуру регулировать по средствам ШИМ, качестве датчика буду использовать штатный терморезистор от принтера
точность в принципе не важно, пойдет ли вот такая схема?:
делаю самодельный ламинатор из печки принтера. хочу его температуру регулировать по средствам ШИМ, качестве датчика буду использовать штатный терморезистор от принтера
точность в принципе не важно, пойдет ли вот такая схема?:
- Вложения
-
- adc0.jpg
- (108.76 КБ) 385 скачиваний
- Roman Venom
- Сверлит текстолит когтями
- Сообщения: 1135
- Зарегистрирован: Сб июл 11, 2009 18:42:21
- Откуда: Украина, г.Николаев
Re: Мелкие вопросы по МК и ПЛИС.
Простейшая прога.... в протеусе работает, на макетке - нет. Шью через понипрог. Прошивается всё нормально, но на ногах низкий уровень... Это первый раз когда я авр прошиваю...чувствую из-за какой-то фигни не запускается прога
.
.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
Успех - императив!
Re: Мелкие вопросы по МК и ПЛИС.
В начале даташит читай внимательно, ты пишешь программу в вектора прерываний, вот и глючит всё. rjmp Init - это вектор резета, он на месте, но потом нужно отступить байт эдак 40 с помощью .org , чтоб не промахнуться и не напороться на другие %).
меньше слов - больше дела
- Roman Venom
- Сверлит текстолит когтями
- Сообщения: 1135
- Зарегистрирован: Сб июл 11, 2009 18:42:21
- Откуда: Украина, г.Николаев
Re: Мелкие вопросы по МК и ПЛИС.
если честно я не очень понял... в пиках надо было прописывать 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: Мелкие вопросы по МК и ПЛИС.
Ставлю данную директиву в сегменте .CSEG со значениями:
0x0000 перед таблицей векторов,
0x0050 перед меткой RESET,
0x.... В том месте где хочу разместить обработку прерываний или таблицу например
0x0000 перед таблицей векторов,
0x0050 перед меткой RESET,
0x.... В том месте где хочу разместить обработку прерываний или таблицу например
Загружая на вход компьютера "мусор", на выходе получим "мусор^32".
PS. Не работаю с: Proteus, Multisim, EWB, Micro-Cap... не спрашивайте даже
PS. Не работаю с: Proteus, Multisim, EWB, Micro-Cap... не спрашивайте даже
- Gudd-Head
- Друг Кота
- Сообщения: 20092
- Зарегистрирован: Чт сен 18, 2008 12:27:21
- Откуда: Столица Мира Санкт-Петербург
Re: Мелкие вопросы по МК и ПЛИС.
1. Зачем делать rjmp на метку, которая идёт сразу за командой rjmp???Roman Venom писал(а): rjmp init
init:
ser work
out DDRB,work
out DDRD,work
SID:
out PORTB,work
out PORTD,work
rjmp SID
2. Зачем циклично устанавливать на портах "1", если это достаточно сделать один раз?
3. Если не используются прерывания, прогу можно начинать с самого начала флэша.
[ Всё дело не столько в вашей глупости, сколько в моей гениальности ] [ Правильно заданный вопрос содержит в себе половину ответа ]
Re: Мелкие вопросы по МК и ПЛИС.
в начале памяти программ у AVR обычно находится таблица векторов прерываний, туда пишутся jmp'ы на соответствующие функции обработки прерываний, или ниче не пишется. поэтому ты туда не пиши, ты сюда пиши, а то снег в башка попадет... вот у тебя стоит первый rjmp Init это вектор прерывания reset с которого начинает выполняться программа, а дальше нужно перепрыгнуть через таблицу векторов и писать программу вне её, параллельно почитывая базовую литературу
.
меньше слов - больше дела
- Roman Venom
- Сверлит текстолит когтями
- Сообщения: 1135
- Зарегистрирован: Сб июл 11, 2009 18:42:21
- Откуда: Украина, г.Николаев
Re: Мелкие вопросы по МК и ПЛИС.
Stepan
Спасибо, я читаю книгу Мортона, но там ничего такого не встретил. В примерах программ в приложениях так же ничего такого нету... Поэтому и написал на форум.
Поставил
.org 0x30 после rjmp init.
Однако программа работает если только есть .org 0x40
Почему так?
Спасибо, я читаю книгу Мортона, но там ничего такого не встретил. В примерах программ в приложениях так же ничего такого нету... Поэтому и написал на форум.
сейчас я понял.вот у тебя стоит первый 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
Успех - императив!


