Страница 123 из 628
Re: Мелкие вопросы по МК и ПЛИС.
Добавлено: Чт окт 21, 2010 07:32:48
ARV
SII писал(а):Лично я считаю, что так делать как раз неправильно, а правильно -- описывать все векторы подряд под конкретный тип контроллера.
да без проблем: каждый имеет право на ошибку

Re: Мелкие вопросы по МК и ПЛИС.
Добавлено: Чт окт 21, 2010 08:19:20
Alexeus
Meteor писал(а):Alexeus писал(а):Метеор, я думаю что у меня возможна проблема с дребезгом контактов замка зажигания....Понимаю, что можно сделать программную коррекцию дребезга- типа считать несколько уровней и потом запускать программу, но интересует как бороться схематикой с дребезгом. получается транзистор может колебаться несколько раз в зависимости от износа контактной группы замка зажигания.
Поставьте таймер типа NE555 в режиме одновибратора. Длительность импульса нужно сделать шире времени дребезга. Выход уже подавать на МК
Отлично! Кардинальный метод )
А фильтр какой нть попроще на пассивных элементах как сделать? RC или какой другой?
Re: Мелкие вопросы по МК и ПЛИС.
Добавлено: Чт окт 21, 2010 08:48:41
Meteor
Не так давно подключал свою приблуду. Решение было такое: сигналы с 12вольтовым уровнем подавались на светодиоды оптронов (применяю TLP521-4). Сигнал с выходов оптронов подавать на формирователи (тригер шмидта) и/или вывод (вход) запуска таймера NE555 (требования прежние, см. предыдущий тематический пост).
Re: Мелкие вопросы по МК и ПЛИС.
Добавлено: Чт окт 21, 2010 11:16:19
Alexeus
я понял, что формировать лог.уровень на м/с можно, но а все же на пассивных элементах более-менее сгладить дребезг можно- как?
Re: Мелкие вопросы по МК и ПЛИС.
Добавлено: Чт окт 21, 2010 11:24:14
Gudd-Head
Alexeus писал(а):я понял, что формировать лог.уровень на м/с можно, но а все же на пассивных элементах более-менее сгладить дребезг можно- как?
Вы же сами себе ответили - ставьте RC фильтр.
Re: Мелкие вопросы по МК и ПЛИС.
Добавлено: Чт окт 21, 2010 12:51:22
Meteor
Реализация подавителя зависит от характера помехи. Если длительность не большая, то вполне подойдет RC-цепочка, иначе - придется думать, ведь не всегда хочется ставить конденсаторы емкостью в тыщи мкФ.
Re: Мелкие вопросы по МК и ПЛИС.
Добавлено: Чт окт 21, 2010 19:16:17
Chettuser
Вопрос по математическим библиотекам: можно ли как то обойтись без них если нужно посчитать степень?:
Просто слишком много памяти отъедает у МК.
Спасибо.
Re: Мелкие вопросы по МК и ПЛИС.
Добавлено: Чт окт 21, 2010 19:23:19
Gudd-Head
Chettuser писал(а):
Просто слишком много памяти отъедает у МК.
Вы двойку хотите в степень возводить?
Re: Мелкие вопросы по МК и ПЛИС.
Добавлено: Чт окт 21, 2010 19:29:33
Chettuser
Отбой. Реализовал сдвигом влево.
Re: Мелкие вопросы по МК и ПЛИС.
Добавлено: Пт окт 22, 2010 11:26:15
Gudd-Head
Chettuser писал(а):Реализовал сдвигом влево.
Гениально

Re: Мелкие вопросы по МК и ПЛИС.
Добавлено: Сб окт 23, 2010 07:45:29
Chettuser
Gudd-Head писал(а):Гениально

Хорош ёрничать! Ну не все ж гении. Я вообще самоучка. Так что мне простительно

Re: Мелкие вопросы по МК и ПЛИС.
Добавлено: Вс окт 24, 2010 21:06:35
vuln
всем привет! есть вопрос:
делаю самодельный ламинатор из печки принтера. хочу его температуру регулировать по средствам ШИМ, качестве датчика буду использовать штатный терморезистор от принтера
точность в принципе не важно, пойдет ли вот такая схема?:
Re: Мелкие вопросы по МК и ПЛИС.
Добавлено: Пн окт 25, 2010 17:42:53
Chettuser
Калибровать надо будет.
Re: Мелкие вопросы по МК и ПЛИС.
Добавлено: Ср окт 27, 2010 17:20:11
Roman Venom
Простейшая прога.... в протеусе работает, на макетке - нет. Шью через понипрог. Прошивается всё нормально, но на ногах низкий уровень... Это первый раз когда я авр прошиваю...чувствую из-за какой-то фигни не запускается прога

.
.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: Мелкие вопросы по МК и ПЛИС.
Добавлено: Ср окт 27, 2010 17:43:19
Stepan
В начале даташит читай внимательно, ты пишешь программу в вектора прерываний, вот и глючит всё. rjmp Init - это вектор резета, он на месте, но потом нужно отступить байт эдак 40 с помощью .org , чтоб не промахнуться и не напороться на другие %).
Re: Мелкие вопросы по МК и ПЛИС.
Добавлено: Ср окт 27, 2010 18:35:45
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
Re: Мелкие вопросы по МК и ПЛИС.
Добавлено: Ср окт 27, 2010 18:40:24
Meteor
Ставлю данную директиву в сегменте .CSEG со значениями:
0x0000 перед таблицей векторов,
0x0050 перед меткой RESET,
0x.... В том месте где хочу разместить обработку прерываний или таблицу например
Re: Мелкие вопросы по МК и ПЛИС.
Добавлено: Ср окт 27, 2010 19:03:17
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. Если не используются прерывания, прогу можно начинать с самого начала флэша.
Re: Мелкие вопросы по МК и ПЛИС.
Добавлено: Ср окт 27, 2010 20:58:05
Stepan
в начале памяти программ у AVR обычно находится таблица векторов прерываний, туда пишутся jmp'ы на соответствующие функции обработки прерываний, или ниче не пишется. поэтому ты туда не пиши, ты сюда пиши, а то снег в башка попадет... вот у тебя стоит первый rjmp Init это вектор прерывания reset с которого начинает выполняться программа, а дальше нужно перепрыгнуть через таблицу векторов и писать программу вне её, параллельно почитывая базовую литературу

.
Re: Мелкие вопросы по МК и ПЛИС.
Добавлено: Ср окт 27, 2010 22:10:11
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