да без проблем: каждый имеет право на ошибкуSII писал(а):Лично я считаю, что так делать как раз неправильно, а правильно -- описывать все векторы подряд под конкретный тип контроллера.
Мелкие вопросы по МК и ПЛИС.
- ARV
- Ум, честь и совесть. И скромность.
- Сообщения: 18544
- Зарегистрирован: Чт дек 28, 2006 08:19:56
- Откуда: Новочеркасск
- Контактная информация:
Re: Мелкие вопросы по МК и ПЛИС.
если рассматривать человека снизу, покажется, что мозг у него глубоко в жопе
при взгляде на многих сверху ничего не меняется...
Мой уютный бложик... заходите!
при взгляде на многих сверху ничего не меняется...
Мой уютный бложик... заходите!
Re: Мелкие вопросы по МК и ПЛИС.
Meteor писал(а):Alexeus писал(а):Метеор, я думаю что у меня возможна проблема с дребезгом контактов замка зажигания....Понимаю, что можно сделать программную коррекцию дребезга- типа считать несколько уровней и потом запускать программу, но интересует как бороться схематикой с дребезгом. получается транзистор может колебаться несколько раз в зависимости от износа контактной группы замка зажигания.
Поставьте таймер типа NE555 в режиме одновибратора. Длительность импульса нужно сделать шире времени дребезга. Выход уже подавать на МК
Отлично! Кардинальный метод )
А фильтр какой нть попроще на пассивных элементах как сделать? 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
- Друг Кота
- Сообщения: 20091
- Зарегистрирован: Чт сен 18, 2008 12:27:21
- Откуда: Столица Мира Санкт-Петербург
Re: Мелкие вопросы по МК и ПЛИС.
Alexeus писал(а):я понял, что формировать лог.уровень на м/с можно, но а все же на пассивных элементах более-менее сгладить дребезг можно- как?
Вы же сами себе ответили - ставьте RC фильтр.
[ Всё дело не столько в вашей глупости, сколько в моей гениальности ] [ Правильно заданный вопрос содержит в себе половину ответа ]
- 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
- Друг Кота
- Сообщения: 20091
- Зарегистрирован: Чт сен 18, 2008 12:27:21
- Откуда: Столица Мира Санкт-Петербург
Re: Мелкие вопросы по МК и ПЛИС.
Chettuser писал(а):Код: Выделить всё
i=pow(2,a);
Просто слишком много памяти отъедает у МК.
Вы двойку хотите в степень возводить?
[ Всё дело не столько в вашей глупости, сколько в моей гениальности ] [ Правильно заданный вопрос содержит в себе половину ответа ]
- Gudd-Head
- Друг Кота
- Сообщения: 20091
- Зарегистрирован: Чт сен 18, 2008 12:27:21
- Откуда: Столица Мира Санкт-Петербург
Re: Мелкие вопросы по МК и ПЛИС.
Chettuser писал(а):Реализовал сдвигом влево.
Гениально
[ Всё дело не столько в вашей глупости, сколько в моей гениальности ] [ Правильно заданный вопрос содержит в себе половину ответа ]
-
Chettuser
Re: Мелкие вопросы по МК и ПЛИС.
Gudd-Head писал(а):Гениально
Хорош ёрничать! Ну не все ж гении. Я вообще самоучка. Так что мне простительно
Re: Мелкие вопросы по МК и ПЛИС.
всем привет! есть вопрос:
делаю самодельный ламинатор из печки принтера. хочу его температуру регулировать по средствам ШИМ, качестве датчика буду использовать штатный терморезистор от принтера
точность в принципе не важно, пойдет ли вот такая схема?:
делаю самодельный ламинатор из печки принтера. хочу его температуру регулировать по средствам ШИМ, качестве датчика буду использовать штатный терморезистор от принтера
точность в принципе не важно, пойдет ли вот такая схема?:
- Вложения
-
- adc0.jpg
- (108.76 КБ) 384 скачивания
- 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
- Друг Кота
- Сообщения: 20091
- Зарегистрирован: Чт сен 18, 2008 12:27:21
- Откуда: Столица Мира Санкт-Петербург
Re: Мелкие вопросы по МК и ПЛИС.
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. Если не используются прерывания, прогу можно начинать с самого начала флэша.
[ Всё дело не столько в вашей глупости, сколько в моей гениальности ] [ Правильно заданный вопрос содержит в себе половину ответа ]
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
Успех - императив!