Реклама на сайте English version  DatasheetsDatasheets

KAZUS.RU - Электронный портал. Принципиальные схемы, Datasheets, Форум по электронике

Новости электроники Новости Литература, электронные книги Литература Документация, даташиты Документация Поиск даташитов (datasheets)Поиск PDF
  От производителей
Новости поставщиков
В мире электроники

  Сборник статей
Электронные книги
FAQ по электронике

  Datasheets
Поиск SMD
Он-лайн справочник

Принципиальные схемы Схемы Каталоги программ, сайтов Каталоги Общение, форум Общение Ваш аккаунтАккаунт
  Каталог схем
Избранные схемы
FAQ по электронике
  Программы
Каталог сайтов
Производители электроники
  Форумы по электронике
Помощь проекту

Микроконтроллеры, АЦП, память и т.д Темы касающиеся микроконтроллеров разных производителей, памяти, АЦП/ЦАП, периферийных модулей...

Закрытая тема
Опции темы
Непрочитано 17.05.2005, 15:02   #1
Воха
Гость
 
Сообщений: n/a
По умолчанию компаратор

У кого есть пример программы на С использование компаратора AVR?
Реклама:
 
Непрочитано 20.05.2005, 15:43   #2
frend
Вид на жительство
 
Регистрация: 19.05.2005
Сообщений: 478
Сказал спасибо: 0
Сказали Спасибо 21 раз(а) в 16 сообщении(ях)
frend на пути к лучшему
По умолчанию

я делал для 90s1200 но только на ассемблере
frend вне форума  
Непрочитано 20.05.2005, 15:43   #3
frend
Вид на жительство
 
Регистрация: 19.05.2005
Сообщений: 478
Сказал спасибо: 0
Сказали Спасибо 21 раз(а) в 16 сообщении(ях)
frend на пути к лучшему
По умолчанию

я делал для 90s1200 но только на ассемблере
frend вне форума  
Непрочитано 22.05.2005, 09:44   #4
impuls-v
Частый гость
 
Регистрация: 18.01.2005
Сообщений: 33
Сказал спасибо: 0
Сказали Спасибо 2 раз(а) в 2 сообщении(ях)
impuls-v на пути к лучшему
По умолчанию

frend а ты не мог бы выложить свой пример на асемблере.
impuls-v вне форума  
Непрочитано 23.05.2005, 10:47   #5
frend
Вид на жительство
 
Регистрация: 19.05.2005
Сообщений: 478
Сказал спасибо: 0
Сказали Спасибо 21 раз(а) в 16 сообщении(ях)
frend на пути к лучшему
По умолчанию

вот прога для сенсорного упраления светом лампы вырезать ничего не стал лень.
.DEVICE AT90S1200 ; Use the AT90S1200
.EQU t1=256-2
.EQU t2=256-12
.EQU t3=256-15
.EQU t4=256-18
.EQU t5=256-20
.EQU t6=256-22
.EQU t7=256-24
.EQU t8=256-27
.EQU t9=256-31
.EQU t10=256-37; max 39


.EQU tau=5
.EQU startt=5 ; c*1024
.EQU stopt=0 ; stop timer

.EQU timer=0x32
.EQU st_time=0x33
.EQU timsk=0x39
.EQU pd=0x12 ;port d
.EQU pind=0x10;input d
.EQU ddrd=0x11 ;dir of pd
.EQU mcucr=0x35
.EQU sreg=0x3f
.EQU acsr=0x8

.DEF power=r2;old stat of power wave
.DEF sensor=r3;old stat of sensor
.DEF lamp_on=R5;
.DEF sec1=R24 ; inc ref pulse if 20 - 1sec then r5=1
.DEF sec2=R25 ; loock if r5=1 if sens pressed (r7)› 5 times r5=0
.DEF sens_pres=R26 ; and r6=1 if r7‹2 sens not pressed and r6=0
.DEF sens_tims=R27 ;
.DEF ZZ=R30
.DEF dir=R29
.EQU ext_int=0x3b;ext iterrupt mask
.EQU d_out=3; 0 & 1 bit d --› out
.EQU test_puls=1; d0
.EQU gate_puls=2; d1
.EQU gate=10 ; ›2 mks 4mks/Tclk/3 cikl
.EQU press=30; 0,3 sec - sens pressed
.equ short=5; 0,05short - lamp on-off
.CSEG


.org 0
rjmp start_prog ; Reset Handler
reti; rjmp ref ; IRQ0 Handler
rjmp timer_subr ; Timer0 Overflow Handler
reti; rjmp comp_sub ; Analog Comparator Handler

.org 0x10
start_prog: ; load t1-t10 to r10 - r19
ldi r21,t1;
mov r10,r21;
ldi r21,t2;
mov r11,r21;
ldi r21,t3;
mov r12,r21;
ldi r21,t4
mov r13,r21;
ldi r21,t5
mov r14,r21;
ldi r21,t6
mov r15,r21;
ldi r16,t7
ldi r17,t8
ldi r18,t9
ldi r19,t10
ldi r31,0
ldi r30,10;
ldi dir,1;up
ldi sec1,100
ldi sec2,0
ldi r21,0x2b;ddrd
out ddrd,r21;0,1,3,5 out
clr r2
clr r3
clr r4
clr r5
clr r27
out acsr,r27;

wait_comp: in r21,acsr;
andi r21,0x20;
breq wait_comp; wait 1 from comp
mov sensor,r21; save
ldi r21,1
mov lamp_on,r21;switch on

;-------- iterrupt enable

;------------timer
ldi r21,stopt
out st_time,r21

ldi r21,2; int enabl
out timsk,r21

ldi r21,0x80; global
out sreg,r21
mp1: ; -scan portd---
in r21,pind
andi r21,0x04; d2
breq mp1; wait 1
mov power,r21; save
mp2: ;-------- wait changes of power
in r21,pind
andi r21,0x04; d2
eor r21,power;r2 zero if not chenged 1 if changed
breq mp3; wait changes
com power
and power,r21; power inversed old
rcall ref;
;--------- scan sensor
mp3: in r21,acsr;
andi r21,0x20;
eor r21,sensor;r3 0 not ch 1 - ch-ed
breq mp2; wait changes
com sensor
and sensor,r21;sensor inversed old
rcall comp_sub

nop



rjmp mp2; cikle work

;----------- front of power puls is locked--
;coun 100 puls then set sec2 to 1
; if lamp_on start timer with (Z) val
ref: in r21,pd
ori r21,test_puls
out pd,r21; test puls - subrutine of power puls
;-------------
dec sec1;if sec1=100 then sec2=1
brpl ref1;
ldi sec2, 1 ;sec2
ldi sec1, 100;

ref1: tst lamp_on;
breq no_on; not lite
ld r21,Z ; curent val of time Z - current addres t
out timer,r21 ; load timer
;--
ldi r21,startt;
out st_time,r21; start timer

no_on: ;-------------
in r21,pd
andi r21,0xfe; stop test puls - end power subrutine
out pd,r21
ret ; return
;----------------
;delay end set gate puls
timer_subr:
ldi r21,stopt
out st_time,r21; stop timer
in r21,pd
ori r21,8
out pd,r21; ----set d3 for lucking timer interrupt
;----------------------------------
tst lamp_on
breq timer_end ;not lite
;------lite
in r21,pd
ori r21,gate_puls; set gate puls
out pd,r21
ldi r21,gate; long gate puls ›2mks 4
delay: dec r21 ; /1
brpl delay; cykle 4 mks /2
in r21,pd
andi r21,0xfd
out pd,r21; stop gate puls

timer_end: ;------------------------------
in r21,pd
andi r21,0xf7
out pd,r21;stop d3 power iterrupt end
reti; return

;----------------------
; count sens_tims
;if sec2 =0 return
; if sec2=1 then
; if sens_tims ‹2 set not_pressed
; if sens_tims ‹ short - set lamp_on/off
;if sens_tims › pres - next (Z+-) intensity
; if sec2=1 then clr sec2

comp_sub: inc sens_tims
in r21,pd
ori r21,0x20; d5 - comparator subrutine
out pd,r21
;-----------------------------------
tst sec2; 0 or 1 - 1sec
breq np1 ; if sec2=0
;----
sensor: cpi sens_tims,2; not pressed
brmi np
cpi sens_tims,short; 0,15‹ poroga
brmi pr_short; short


cpi sens_tims,press; ›0,75 sec
brmi np ; ‹0,5sec
;------- all conditions
ldi sens_tims,0
ldi r21,1
mov lamp_on,r21; if pressed sw on
add ZZ,dir ; Z + or - 1
cpi ZZ,10; min registr
brpl Z19;
ldi ZZ,10;
ldi dir,1; up
Z19: cpi ZZ,20; max registr
brmi np; Z‹19
ldi ZZ,19
ldi dir,-1; down
; ---sw lamp off rjmp np
pr_short: inc lamp_on
ldi r21,1
and lamp_on,r21;lamp sw on/off


np: ldi sec2,0 ; 0
ldi sec1,100; initial next time slot

np1: in r21,pd
andi r21,0xdf;d5 - reset comp puls out
out pd,r21
ret;
;-------------------

phaz: .db t1,t2,t3,t4,t5,t6,t7,t8,t9,t10; start phase of pulse
.exit
frend вне форума  
Закрытая тема

Закладки

Опции темы

Ваши права в разделе
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.

Быстрый переход

Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Компаратор К2СА521 west2 Поиск схем. Делимся схемами 9 27.05.2009 20:01
компаратор и PIC (CИ) sergxxx Микроконтроллеры, АЦП, память и т.д 10 30.11.2008 04:32
Аналоговый компаратор retcom Микроконтроллеры, АЦП, память и т.д 61 11.12.2007 20:53
16f876a и компаратор T-34 Микроконтроллеры, АЦП, память и т.д 2 11.03.2007 05:07
Подскажите компаратор Dimitris Информация по радиокомпонентам 2 01.07.2003 16:59


Часовой пояс GMT +4, время: 06:35.


Powered by vBulletin® Version 3.8.4
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd. Перевод: zCarot