Обсуждаем контроллеры компании Atmel.
Ответить

Re: Таймер обратного отсчета

Вт июн 22, 2021 19:17:08

НСТ писал(а):получил два китайских ATtiny2313, оба отказались читаться-прошиваться.
я уже 2 раза получал с Али АТмега8, которые приходилось лечить доктором фьюзов.

Re: Таймер обратного отсчета

Вт июн 22, 2021 19:23:01

НСТ
1. Понизить частоту юсбасп (25я нога)/ 2. Подать внешний такт на OSC1 4 МГц /3. Доктор

Re: Таймер обратного отсчета

Ср июн 23, 2021 19:10:58

Перепаял индикатор на часовой,но у меня ОА,ОК проверил только в протеусе
Вложения
Taimer2 OK 16 01.hex
(5.46 KiB) Скачиваний: 141

Re: Таймер обратного отсчета

Ср июн 23, 2021 20:58:00

Я участвовал в одной теме. Там мы накидали примеров. Выбор ОК ОА, сегменты на произвольные порты. Почему так не сделали? Давно бы дали уже товарищу исходник, чтобы он себе скомпилировал как ему надо.

Re: Таймер обратного отсчета

Чт июн 24, 2021 17:47:47

И где вы лично сами выложили исходник с "Выбор ОК ОА, сегменты на произвольные порты"?

Добавлено after 30 minutes 19 seconds:
Выкладываю исходник, "Taimer2 OK 16"
Спойлер' ПРОШИВКА programm010 РАБОЧАЯ,описание https://radiokot.ru/forum/viewtopic.php ... 8#p3983518

'$regfile = "2313def.dat"
$Regfile="attiny2313a.dat"
'$Crystal=4000000
$Crystal=16000000
$hwstack=40
$swstack=16
$framesize=32

' $Crystal=16000000 Prescale = 256
Config Timer0 = Timer , Prescale = 256 ' 16000000/256/256=244 Hz>> 4 msec
On Timer0 Pulse:
Config Timer1 = Timer , Prescale = 256 '16000000/256/2=31250-65535= 34 286


const timer1pre=34286

Timer1 =timer1pre
On Timer1 tikers:
Enable INTERRUPTS 'включение прерываний
Enable Timer0 'влюч. прерываний по переполнению таймера0
Enable Timer1
stop timer1
Ddrb = &B11111111 ' BAFGEDCH
Portb =&B00000000
Ddrd = &B1111011'&B0001111 '
Portd = &B00000100
rele alias portd.0
Speaker alias portd.1
dim t as byte
dim regim as byte
dim button as byte
Dim Dis As Byte
Dim Freq_num(8) As Byte
'Dim Text As String * 4
dim точка as bit
dim hour as Byte,mine as byte,seco as Byte,seco2 as byte
dim hour_eram as eram Byte,mine_eram as eram byte',seco as Byte


dis=5
regim=0'0
rele=0
gosub set_start
gosub digits
do
if button>0 then
'Sound Speaker , 65 , 1274
stop timer1'incr hour
' gosub pic
Select Case button
Case 5:select case regim
case 0:regim=1:Timer1 =timer1pre
'Sound Speaker , 65 , 1274'Sound Speaker , 50 , 800
case 1:regim=0
case 2:gosub set_start'если время=0 то считываем время из памяти
regim=0
case 3:regim=0
seco=59 ':hour_eram=hour
case 4:regim=0
seco=59':mine_eram=mine
case 5:
end select
Case 3:select case regim
case 0:regim=3:stop timer1:точка=0
case 1:'x=x+100
'if x>2000 then x=2000
case 2:regim=3
case 3:incr hour
if hour>24 then hour=0
case 4:incr mine
if mine>59 then mine=0
case 5:
end select


Case 4:select case regim
case 0:regim=4:stop timer1:точка=0
case 1:'x=t
'x=x-100
'if x<200 then x=200
't=x
case 2:regim=4
case 3:decr hour
if hour>24 then hour=24
case 4:decr mine
if mine>59 then mine=59
case 5:
end select


Case 2:select case regim
case is<3:gosub set_start:if regim=2 then regim=1
case 1:
case 2:
case 3:regim=0:hour_eram=hour:seco=59
case 4:regim=0:mine_eram=mine:seco=59
'case 3:hour=hour_eram
'case 4:mine=mine_eram
case 5:
end select


end select
if regim=1 then rele=1 else rele=0
gosub digits
if regim<3 then start timer1
waitms 100
button=0
end if
if regim=2 and t=255 then gosub pic'Sound Speaker , 65 , 1274
loop

pic:
Sound Speaker ,100,1000
return
set_start:
hour=hour_eram
if hour>100 then
hour_eram=00
mine_eram=01
end if
hour=hour_eram
mine=mine_eram
seco=59
Timer1 =timer1pre
start timer1
return
digits:
Freq_num(5) =hour/10
Freq_num(4) =hour mod 10
Freq_num(3) =mine/10
Freq_num(2) =mine mod 10
'if hour=0 and mine<10 and regim=1 then
if hour=0 and regim=1 then
seco2=59-seco
'seco2=seco2/2

Freq_num(5) =mine/10
Freq_num(4) =mine mod 10
Freq_num(3) =seco2/10
Freq_num(2) =seco2 mod 10
end if
return
tikers:
Timer1 =timer1pre
toggle точка
if regim=1 and точка=1 then incr seco
if seco>59 then
seco=0
decr mine
if mine=255 then
if hour>0 then
mine=59
decr hour
else
mine=0
end if


end if

end if
if hour=0 and mine=0 and seco=59 then
regim=2'переходим в стоп
mine=0
hour=0
stop timer1
точка=1
rele=0
end if
gosub digits

return
Pulse: 'обработка прерывания
Portd.3 =1
Portd.4 =1
Portd.5 =1
Portd.6 =1
button=dis
select case regim
'пауза
case 0:if точка=0 then
freq_num(2)=11
freq_num(3)=11
freq_num(4)=11
freq_num(5)=11
end if
case 3:freq_num(2)=11
freq_num(3)=11
'
case 4:freq_num(4)=11
freq_num(5)=11
end select
Portb = Lookup(freq_num(dis) , Dig)
portb.5=точка
Select Case Dis
Case 5
Portd.6 =0
Case 4
Portd.5 = 0
'portb.5=точка
Case 3
Portd.4 = 0
Case 2
Portd.3 =0
portb.5=rele
End Select
'waitus 500
waitms 3
portb=0
Decr Dis
If Dis = 1 Then Dis = 5

if pind.2=1 then button=0
incr t
Return



Dig:
Data &B11010111
Data &B00010100
Data &B11001101
Data &B01011101
Data &B00011110
Data &B01011011
Data &B11011011
Data &B00010101
Data &B11011111
Data &B01011111


Data &B00001000 '10=прочерк
Data &B00000000 '11=пробел

Re: Таймер обратного отсчета

Пт июн 25, 2021 00:13:05

например тут

Re: Таймер обратного отсчета

Пт июн 25, 2021 05:42:28

В данном случае четко определились с типом индикатора,четко определились какие сегменты к каким портам подключать,зачем искать приключения на задницу и предусматривать "Выбор ОК ОА, сегменты на произвольные порты"?
Человек мало понимает в программировании,как он сможет переписать под себя?
Если вы спец вам проще,я лично ваш исходник не смогу переделать под себя и скомпилировать,не знаю я си,и не знаю

Добавлено after 1 minute 22 seconds:
в какой программе компилировать

Re: Таймер обратного отсчета

Пт июн 25, 2021 06:37:38

Как это к любым портам?
Как аттини узнает как я подключил к нему индикатор?

Re: Таймер обратного отсчета

Пт июн 25, 2021 07:50:19

Можно сделать исходник с дефайнами. Указать человеку, где и как поменять тип общих выводов индикаторов. Порты сегментов индикаторов. Тест, для проверки в протеусе и так далее, рабочая версия. А также тестовые времянки. Показать как компилировать программу. Подобные вещи делались для удалённой работы. Понятно, что не все клиенты так смогут. Но как правило, если клиент умеет держать паяльник, подобный способ работает.

Добавлено after 3 minutes 43 seconds:
Как это к любым портам?
Как аттини узнает как я подключил к нему индикатор?

Несколько детский вопрос. Микроконтроллер никак не узнает. К какому порту что подключать указано в программе. Разница в том, что программу можно написать с жёстким заданием портов, а можно с произвольным выбором. К примеру, тип общего вывода по перемычкам или в настройках. Сегменты при компилировании проекта, дефайнами.

Re: Таймер обратного отсчета

Пт июн 25, 2021 10:16:59

Понятно
А есть прошивка минуты только?
У меня микроволновка иногда чудит, иногда таймер считает на увеличение, таймер механический, ставишь допустим греть обед на 5 минут а он отсчитывает не в сторону ноля, а в сторону 55 минут, думаю таймер рядом поставить, выставить то же время для контроля

Re: Таймер обратного отсчета

Пт июн 25, 2021 13:51:56

Я уже думал об этом. Написать проект заготовку всяких разных таймеров. И, если не путаю, писал об этом. Я сейчас в отпуске, если будет время, возможно, все-таки сделаю. Своих дел пока хватает.

Re: Таймер обратного отсчета

Пт июн 25, 2021 14:05:31

А есть прошивка минуты только?

А чем вас "Кухонный таймер "Что-та"" не устраивает?
https://radiokot.ru/forum/viewtopic.php ... 4#p4014674
https://radiokot.ru/circuit/digital/home/59/

Re: Таймер обратного отсчета

Пт июн 25, 2021 15:16:41

Энкодера нет, заказывать надо...

Re: Таймер обратного отсчета

Пт июн 25, 2021 15:57:49

Из мышки выковыряйте..
Можно самому из двух "щелевых" оптопар
Изображение
сделать, или из старой мышиной оптопары.. :dont_know:
Ещё я делал таймер обратного отсчёта на Мега8/88,
Изображение Изображение
Установка времени отсчёта кнопками, но он с секундами.. :dont_know:

Re: Таймер обратного отсчета

Пт июн 25, 2021 16:13:15

Энкодера нет, заказывать надо...

Не парься. Тебе нужен простой кухонный таймер? Можно сообразить. С музыкой связываться не буду. Максимум пищалка. Позже, может и сделаю.
Каким ты видишь таймер? Отдельное устройство. Ни за что не отвечает, просто показывает сколько времени прошло. Можно и обратный. Отключает по времени. Питание.

Re: Таймер обратного отсчета

Пт июн 25, 2021 16:57:15

Так тут вроде так и сделано, только часы-минуты

Добавлено after 30 minutes 51 second:
АлександрЛ, у вас этот таймер на фото? https://www.radiokot.ru/forum/viewtopic ... &start=380

Re: Таймер обратного отсчета

Пт июн 25, 2021 18:14:31

Толик89, тут в теме есть мой проект, с кнопками и без энкодера.
если часы не нужны, можно их всегда выставить в "00".

Re: Таймер обратного отсчета

Пт июн 25, 2021 19:43:23

АлександрЛ, у вас этот таймер на фото? https://www.radiokot.ru/forum/viewtopic ... &start=380

Ну, да, вроде.. При чём- я его делал и на Меге8, и на Меге88.. И даже случайно закатал прошивку в Мега328 - если правильно всё сделать- работает.

Re: Таймер обратного отсчета

Пт июн 25, 2021 22:49:17

Есть на PIC16F684, PIC12F683... А так то на любой МК можно запилить все эти таймеры . А хоть и амеги , какая разница ? СИ будет работать в других средах , с минимальной доработкой !

Re: Таймер обратного отсчета

Сб июн 26, 2021 09:45:30

вообще-то, название темы некорректное.
таймер потому и называется таймером, что он делает обратный отсчет от заданного времени до нуля.
а с прямым отсчетом (от нуля) называется секундомер.
Ответить