я не критикую, просто советую свой вариант
Прошивка attiny2313 + тиристор bt136
- aleks_bmw528
- Встал на лапы
- Сообщения: 122
- Зарегистрирован: Вт ноя 17, 2009 11:05:02
GP1 если не трудно глянь, продолжаю свои эксперементы со спадом написал тестовую программу , грубо говоря если импульс на INT0 есть то лампа должна загоратся и тухнуть , стали творится чудеса , например если использовать резюк 10ком на +5В и минус при прикосновении к минусу лампа загорится сразу ну и через 10-15сек
потухнет и не загорится ,если я повторно прикоснусь то загорится не сразу 10-15сек потом потухнет
1. Не пойму почему при первом прикосновении сразу срабатывает таймер а при повторном как и должен через 10-15сек ???
2. При подключении через резистор 1Мом опять таймер сработал сразу ,чудеса в том что если отключить резистор 1мом таймер будет
будет сам продолжать работать ,т е INT0 каким то образом само
запускает таймер без наличия сигнала, и еше если включить в сеть без подключения 1мом то лампа загорается наглуха и не тухнет???
Не могу найти обьяснения ???
потухнет и не загорится ,если я повторно прикоснусь то загорится не сразу 10-15сек потом потухнет
1. Не пойму почему при первом прикосновении сразу срабатывает таймер а при повторном как и должен через 10-15сек ???
2. При подключении через резистор 1Мом опять таймер сработал сразу ,чудеса в том что если отключить резистор 1мом таймер будет
будет сам продолжать работать ,т е INT0 каким то образом само
запускает таймер без наличия сигнала, и еше если включить в сеть без подключения 1мом то лампа загорается наглуха и не тухнет???
Не могу найти обьяснения ???
Код: Выделить всё
.include "tn2313def.inc"
.def tmp = r16
.def tmp1 = r17
.equ power0 = 65535
.equ OutPort = PORTB
.equ OutCntr = DDRB
.equ OutPin = PB0
.equ T1_off = 0b00000000
.equ T1_on = 0b00000100
.CSEG
.org 0
reset: rjmp start ; 00 Reset Handler
; ***** INTERRUPT VECTORS ************************************************
.org INT0addr ;= 0x0001 External Interrupt Request 0
rjmp int_0
;.equ INT1addr = 0x0002 ; External Interrupt Request 1
;.equ ICP1addr = 0x0003 ; Timer/Counter1 Capture Event
; .org OC1Aaddr ;= 0x0004 Timer/Counter1 Compare Match A
; rjmp comp1a
;.equ OC1addr = 0x0004 ; For compatibility
.org OVF1addr ;= 0x0005 ; Timer/Counter1 Overflow
rjmp T1_OVF
;.equ OVF0addr = 0x0006 ; Timer/Counter0 Overflow
;.equ URXCaddr = 0x0007 ; USART, Rx Complete
;.equ URXC0addr = 0x0007 ; For compatibility
;.equ UDREaddr = 0x0008 ; USART Data Register Empty
;.equ UDRE0addr = 0x0008 ; For compatibility
;.equ UTXCaddr = 0x0009 ; USART, Tx Complete
;.equ UTXC0addr = 0x0009 ; For compatibility
;.equ ACIaddr = 0x000a ; Analog Comparator
;.equ PCIaddr = 0x000b ;
; .org OC1Baddr ;= 0x000c
; rjmp comp1b
; .org OC0Aaddr ;= 0x000d
; rjmp comp0a
;.equ OC0Baddr = 0x000e ;
;.equ USI_STARTaddr = 0x000f ; USI Start Condition
;.equ USI_OVFaddr = 0x0010 ; USI Overflow
;.equ ERDYaddr = 0x0011 ;
;.equ WDTaddr = 0x0012 ; Watchdog Timer Overflow
;=================
start:
ldi tmp,low(ramend) ;stack init SP=0xdf
out spl,tmp
sbi ACSR,ACD ;Analog comparator off
ser tmp
out OutCntr,tmp
clr tmp
out OutPort,tmp
clr tmp
out ddrd,tmp
ldi tmp,0b01111011
out portd,tmp
ldi tmp,(0<<ISC01)|(1<<ISC00) ; это так для порядка - сначала ст.бит, затем мл.бит
out MCUCR,tmp ;INT0
ldi tmp,(1<<INT0)
out GIMSK,tmp
; установки для Т1
; тактовая Fo, режим работы - сброс по совпадению
clr tmp ; таймер отключен от выводов порта
out TCCR1A,tmp
ldi tmp,0b00000000 ; режим работы NORMAL, таймер остановлен!!!
out TCCR1B,tmp
; вот здесь загружаем начальное значение для power, таймер остановлен
ldi tmp,low(power0)
ldi tmp1,high(power0)
out TCNT1H,tmp1 ; загрузка стартового значения мощности
out TCNT1L,tmp
; установка разрешений прерываний от таймеров
clr tmp
ldi tmp,(1<<TOV1)
out TIMSK,tmp
; здесь размещают тело основной программы.
sei
next:
rjmp next
;=================
; Обработчики прерываний
;=================
int_0:
in tmp,sreg
push tmp
; запускаем Т1
ldi tmp,T1_on
out TCCR1B,tmp
pop tmp
out sreg,tmp
reti
T1_OVF:
in tmp,sreg
push tmp
brts t1_001
sbi OutPort,(1<<OutPin)
pop tmp
out sreg,tmp
set rjmp t1_exit
t1_001:
ldi tmp,T1_off
out TCCR1B,tmp
cbi OutPort,(1<<OutPin) ; получается 2,5 мкс
pop tmp
out sreg,tmp
clt
t1_exit:
reti
- aleks_bmw528
- Встал на лапы
- Сообщения: 122
- Зарегистрирован: Вт ноя 17, 2009 11:05:02
перепутал
по спаду так
но один черт при включении без подачи чего либа на вход INT0 pd2
само по себе срабатывает INT0 и запускает таймер!!!!
Кто нибуть может обяснить в чем дело
?????
ldi tmp,(0<<ISC01)|(1<<ISC00)
по спаду так
Код: Выделить всё
ldi tmp,(1<<ISC01)|(0<<ISC00)
но один черт при включении без подачи чего либа на вход INT0 pd2
само по себе срабатывает INT0 и запускает таймер!!!!
Кто нибуть может обяснить в чем дело
- aleks_bmw528
- Встал на лапы
- Сообщения: 122
- Зарегистрирован: Вт ноя 17, 2009 11:05:02
GP1 с чудесами разобрался ,в программе напортачил теперь таймер срабатывает не сразу ,как раньше !!!!
по спаду резистор 10 ком +5в на минус все работает !!!
просто через резистор 1мом не очень хочется без гальванической развязки , к тому же придется подключать фаза ноль !!!
нет случайно какой нибуть мысли по ловле 0 через оптопару ,или еще чего нибуть????
по спаду резистор 10 ком +5в на минус все работает !!!
просто через резистор 1мом не очень хочется без гальванической развязки , к тому же придется подключать фаза ноль !!!
нет случайно какой нибуть мысли по ловле 0 через оптопару ,или еще чего нибуть????
- aleks_bmw528
- Встал на лапы
- Сообщения: 122
- Зарегистрирован: Вт ноя 17, 2009 11:05:02
- aleks_bmw528
- Встал на лапы
- Сообщения: 122
- Зарегистрирован: Вт ноя 17, 2009 11:05:02
GP1 Приветствую !!!!
Схема достаточно известная у буржуев ,100% рабочая
поминалы
R1A,R1B 27ком 1ватт
D1 1N4007
R3 10ком
4N33
Схема достаточно известная у буржуев ,100% рабочая
поминалы
R1A,R1B 27ком 1ватт
D1 1N4007
R3 10ком
4N33
- Вложения
-
- zc_sch.jpg
- (12.97 КБ) 570 скачиваний
- aleks_bmw528
- Встал на лапы
- Сообщения: 122
- Зарегистрирован: Вт ноя 17, 2009 11:05:02
Слушай GP1 может чего с фузами не так ,такое ощущение не так тактируется, вроде выставлял под внешний кварц ,но я особо не
силен в фузах
силен в фузах
- Вложения
-
- fuse.jpg
- (195.02 КБ) 367 скачиваний
- aleks_bmw528
- Встал на лапы
- Сообщения: 122
- Зарегистрирован: Вт ноя 17, 2009 11:05:02
Галка это 1
включенный FUSE - это FUSE без галочки!
во втором варианте лампа горит ярче при 99% и мерцает поменьше
включенный FUSE - это FUSE без галочки!
во втором варианте лампа горит ярче при 99% и мерцает поменьше
- Вложения
-
- fuse2.jpg
- (79.92 КБ) 336 скачиваний
- aleks_bmw528
- Встал на лапы
- Сообщения: 122
- Зарегистрирован: Вт ноя 17, 2009 11:05:02
- aleks_bmw528
- Встал на лапы
- Сообщения: 122
- Зарегистрирован: Вт ноя 17, 2009 11:05:02
- aleks_bmw528
- Встал на лапы
- Сообщения: 122
- Зарегистрирован: Вт ноя 17, 2009 11:05:02
GP1 ты меня напугал RSTDISBL=0 это я просто не прочитал поэтому там 0
слушай сейчас эксперементировал походу работает только на внутреннем генераторе ставил cksel1 галку остальные 0 моргает медленнее я так понимаю вн частота 4мгц потом пробывал галку
ckdiv вообще не запускается ???
вопрос :может быть что с установкой portd ??? у меня такое ощущение что не работает внешний RC только что перепаял кварц и С 22 пф
все равно ZERRO
слушай сейчас эксперементировал походу работает только на внутреннем генераторе ставил cksel1 галку остальные 0 моргает медленнее я так понимаю вн частота 4мгц потом пробывал галку
ckdiv вообще не запускается ???
вопрос :может быть что с установкой portd ??? у меня такое ощущение что не работает внешний RC только что перепаял кварц и С 22 пф
все равно ZERRO
Последний раз редактировалось aleks_bmw528 Ср дек 02, 2009 11:59:19, всего редактировалось 1 раз.
- aleks_bmw528
- Встал на лапы
- Сообщения: 122
- Зарегистрирован: Вт ноя 17, 2009 11:05:02
