роботы робототехника микроконтроллеры


 Страниц (2): [1] 2 »   

> Без описания
sibiryak Post Id



Главнокомандующий


Сообщений всего: 248
Дата рег-ции: Февр. 2011  



Никак не могу понять работу этих прерываний от таймера и внешних. Запустить могу, а как с ними работать ну никак не пойму.
В общем нужно посчитать внешние прерывания за определенный период ( обороты чего либо ).
Есть 8ми разрядный таймер работает в режиме 4Мгц/64 по завершению складывает значения в регистр. В итоге регистр прокручивается около секунды.
А обороты которые надо посчитать равны от 5 об/сек до 100об/сек. Я так понимаю нужно посчитать сколько будет прерываний за один прогон регистра от таймера...

Вот собственно наброски.

CODE:

.NOLIST
.INCLUDE "m8def.inc" ; ATMEGA8
.LIST

.def temp = r16
.def temp1= r17
.def temp4= r18
.def count = r19 ;счетчик таймера
.def flag = r20

.DSEG
.ORG 0X0060
.CSEG
.ORG $0000

rjmp RESET
rjmp EXT_INT0 ;внешнее прерывание INT0
reti // INT1
reti // TIMER2 COMP
reti // TIMER2 OVF
reti // TIMER1 CAPT
reti // TIMER1 COMPA
reti // TIMER1 COMPB
reti // TIMER1_OVF
rjmp TIMER0_OVF ;прерывание таймера 0
reti // SPI
reti // UART
reti // UART
reti // UART
reti // ADC_INT
reti // EE_RDY
reti // ANA_COMP
reti // TWI
reti // SPM_RDY


EXT_INT0:
ldi flag,0b00000001
reti


RESET:
ldi temp, HIGH(RAMEND) ; Initiiere MSB Stapel
out SPH,temp
ldi temp, LOW(RAMEND) ; Initiiere LSB Stapel
out SPL,temp

;инициализация портов
ldi temp,0xff ; ïîðò Â âûõîä
out DDRB,temp
ldi temp,0x00
out PORTB,temp
ldi temp,0x00 ; ïîðò D âõîä
out ddrd,temp

; выкл компаратор
ldi temp,1<<ACD
out ACSR,temp

;инициализация таймера
ldi temp,0b00000001
out timsk,temp
ldi temp,0b00000011
out tccr0, temp

ldi flag,0b00000000

;инициализация прерывания от int0
ldi temp, 1<<ISC01 ;по спаду 1-0
out MCUCR,temp
ldi temp, 1<<INT0 ;разрешаем int0
out GICR, temp
sei

main:
sbrs flag,0
rjmp main

; прерывание по таймеру

TIMER0_OVF:
inc count ; инкреметируем count
reti
 
 Top
mihail Post Id



Гуру


Сообщений всего: 1065
Дата рег-ции: Март 2010  



Как я понял Вам нужно посчитать число прерываний по внешнему сигналу за 1 секунду. В обработчике прерывания INT0 увеличиваете какой нибудь регистр на 1. В прерывании по переполнению таймера/счетчика 0 значение этого регистра передаете по UART. Затем обнуляете этот регистр. Раз в секунду UART будет передавать число оборотов в секунду. Основной цикл программы пустой.

PS При инициализации прерываний сбрасывайте их флаги.
 
 Top
sibiryak Post Id



Главнокомандующий


Сообщений всего: 248
Дата рег-ции: Февр. 2011  



Спасибо, только с UARTом я еще не сталкивался, по этому не вкурсе куда и что по нему нужно передавать Замешательство Может без него можно ?
mihail пишет:
Как я понял Вам нужно посчитать число прерываний по внешнему сигналу за 1 секунду. В обработчике прерывания INT0 увеличиваете какой нибудь регистр на 1

Да, все верно. Далее исходя от числа оборотов я буду писать функции для портов вывода.
Это будет система зажигания с корректировкой угла опережения для авто.
 
 Top
mihail Post Id



Гуру


Сообщений всего: 1065
Дата рег-ции: Март 2010  



UART для примера. В прерывании по переполнению таймера/счетчика 0 можно копировать значение изменяемого в INT0 регистра в другой регистр. И в основном цикле программы работать с этой копией. Там всегда будет число оборотов в секунду.

CODE:
EXT_INT0:
inc R21 ; Increment R21
reti

TIMER0_OVF:
mov R22, R21 ; Copy R21 to R22
ldi R21, 0 ; Write 0 to R21
reti

main:
cpi R22, 5 ; Compare R22 to 5
brne mark1 ; Branch if R22 <> 5
nop
mark1:
nop
rjmp main


PS Обновление данных раз в секунду не маловато будет для нормальной работы ДВС.

(Отредактировано автором: 05 Июня, 2013 - 00:33:28)

 
 Top
cjA Post Id



Генерал


Сообщений всего: 3291
Дата рег-ции: Янв. 2010  



если нупы для работы- значит нужно на лупы заменить в зависимости от частоты, а если для красоты- то убрать. Так для чего?

(а где вы копируете счетчик таймера? р22 и р21 - регистры общего назначения вроде? (каунт- р19)) или это для примера? mihail, с Вашими мозгами для примера очень сложно. (чот мне тоже захотелось на бензакосу такую штуку)
 
 Top
sibiryak Post Id



Главнокомандующий


Сообщений всего: 248
Дата рег-ции: Февр. 2011  



cjA пишет:
чот мне тоже захотелось на бензакосу такую штуку

Коса наверно заморская там и так все отточено.
А на УАЗике всю электронику бы переделал.
 
 Top
cjA Post Id



Генерал


Сообщений всего: 3291
Дата рег-ции: Янв. 2010  



интерскул, есть магнето, свеча и тумблер между ними. Смущение
но подумать об этом лучьше же чем дом2 смотреть? (Хотя еще лучьше- пойти помидоры полить, раз я так умный парник и не сделал)
 
 Top
morokoriss Post Id



Генералиссимус


Сообщений всего: 697
Дата рег-ции: Нояб. 2011  



У меня две косы, Shtil fs130 и интерскол (не помню какой). Shtil конечно другой уровень, но капризная до ужаса. Чуть бензин постоял и уже может не завестись, свежий подавай. Но и тяга зато у неё и движок 4х тактный (только масло в бензин всё равно добавляетя). А вот интерскол с бензином зиму простоял, весна пришла я её раз и завёл) Работает хорошо, мощи в принципе хватает но шпуль мне не очень нравится да и леску более 2мм лучше не использовать. А вот косы с картером (где масло не добавляют в бензин) - это шлак. Иногда приходится завалить косу на бок чтобы прокосить труднодоступный участок и в этот момень маслице то и стекёт вниз. Заборник его то не сможет всосать и капут! Не знаю делают ли такие косы известные фирмы, я пока только какой-то патриот видел за 4000р.
 
 Top
morokoriss Post Id



Генералиссимус


Сообщений всего: 697
Дата рег-ции: Нояб. 2011  



cjA, Вы имеете такую же острую неприязнь к Дому 2 как и я?
 
 Top
cjA Post Id



Генерал


Сообщений всего: 3291
Дата рег-ции: Янв. 2010  



morokoriss пишет:
А вот интерскол с бензином зиму простоял, весна пришла я её раз и завёл
А что такое Дом2? У меня тоже на старом бензине "зимнем" запустилось и до конца выработало, я удивилсо!!! Жуть
И все! на новом бензине дажене пыхает, как проверить свечу "электронно"?
(Добавление)
от магнето есн
 
 Top
Predator Супермодератор Post Id


Супермодератор


Сообщений всего: 1307
Дата рег-ции: Июль 2012  



Цитата:
А что такое Дом2?
- он неженатый или глобально повезло с супругой. году этак в 2005 (точно не помню) меня насторожила реклама "Дом2 - первая весна".
P.S. мне с супругой повезло, а вот "собутыльнику" нет...
 
 Top
cjA Post Id



Генерал


Сообщений всего: 3291
Дата рег-ции: Янв. 2010  



Predator, вопрос был задан конкретно!. Если бензосмесь поместить в морозилку (она простояла всю зиму в сарае, промерзала не раз) - она станет лучьше или нет? Чисто химический вопрос, я в химии дуб. (при чем тут дом2? Красивые бабы, да, но они же не отличат кусачки от пассатижев?)

(Отредактировано автором: 13 Июня, 2013 - 07:29:18)

 
 Top
Predator Супермодератор Post Id


Супермодератор


Сообщений всего: 1307
Дата рег-ции: Июль 2012  



видимо дом2 это в оффтоп, так-же как и бензин (тема-то про таймер).
насколько я помню (из химии радиотехничекого университета) в бензине не должно быть морозонестойких компонентов. Разве что если его соляркой бадяжили - то некоторые фракции могли выпасть в виде парафина, но потом опять раствориться...
 
 Top
morokoriss Post Id



Генералиссимус


Сообщений всего: 697
Дата рег-ции: Нояб. 2011  



Свечу надобно выкрутить и электрод на газу прожеч как следует. Затем щёткой металлической шоб блестел как эти самые) Куда уж ещё электронней?
 
 Top
cjA Post Id



Генерал


Сообщений всего: 3291
Дата рег-ции: Янв. 2010  



morokoriss вот ты куда?
Так почему перемороженая бензосмесь зажигается более чем на ура? (зописал- перед коской- отморозить.) А вам, химикам- вопрос!!!!???
 
 Top
Страниц (2): [1] 2 »
« Программирование микроконтроллеров »


Все гости форума могут просматривать этот раздел.
Только зарегистрированные пользователи могут создавать новые темы в этом разделе.
Только зарегистрированные пользователи могут отвечать на сообщения в этом разделе.
 





Powered by Exclusive Bulletin Board
ExBB FM 1.0 RC1 Smiles by Fool from Foolstown
  Яндекс.Метрика   Рейтинг@Mail.ru