На входы компаратора подаётся входное напряжение и опорное напряжение.
Два вывода используются как дискретные входы для задания режимов подачей 0 или 1 с помощью перемычек.
Один вывод выход для управления светодиодом, включение нулём.
Алгоритм работы:
Если вх.напряжение превышает опорное, то ничего не делаем.
Если входное напряжение ниже опорного, то начинаем отсчитывать 1 минуту.
Если в процессе отсчёта ситуация изменилась(напряжение стало выше опорного), то отсчитанное время начинаем считать в обратную сторону, но только до нуля.
Если досчитали до 1-й минуты, то начинаем мигать светодиодом 2 раза в секунду.
Если после этого напряжение станет выше опорного, то мигать не прекращаем, а просто ведём отсчёт в обратную сторону и прекращаем мигать только после достижения нуля.
То есть направление отсчёта времени зависит от состояния компаратора, а переключения мигает/немигает осуществляется в крайних положениях.
состояния перемычек
1, 1 выдержка 1 минута
1,0 выдержка 30 секунд
0,х выдержки нет, реакция мгновенная.
Ну раз пошла такая пьянка, вставлю и я свои пять копеек. Лично я против си и асемблера ничего плохого не имею и вообще считаю глупо спорить какой язык лучше. Каждый язык по своему интересен. Я например пишу на бэйсике(Bascom-AVR)и пока доволен, иногда поверхностно касаюсь си и асемблера, но считаю что без знания архетектуры контроллера ничего хорошего не получиться. Кто считает что Bascom для начинающих, несоглашусь, в нём можно писать и серьёзные проекты. Недавно занимался проектом в котором победила дружба, в устройстве было три микроконтроллера, две штуки Attiny2313A в одной программа была написана на асемблере, в другой на си, а третий Atmtga8A программа написана в Bascome, причём Atmtga8A общается с одой Attiny2313A по USART и всё прекрасно работает.Bascom к тому же позволяет и асемблеровские вставки писать. Вообще есть большое желание изучить и си и асемблер, но как обычно не хватает времени, а для этого как известно времени нужно много.
Ну и в заключении, вот набросал програмку к вашей задачи. В пол часа конечно не уложился, вместе со схемкой гдето часа 1,5 ушло. В протеусе работает как часы.
Единственное отступление, что светодиод включается не нулём, а еденицей. Ну не привык я так светодиоды подключать.
$regfile = "attiny2313.dat"
$crystal = 8000000
Ddrb.7 = 1
Ddrd.5 = 0
Ddrd.6 = 0
Dim A As Bit
Dim Puls As Bit
Dim Tim As Byte
Dim Time_sec As Byte
Config Timer1 = Timer , Prescale = 256
Stop Timer1
Do
If Pind.5 = 0 Then
Tim = 0
Else
If Pind.6 = 0 Then Tim = 30
If Pind.6 = 1 Then Tim = 60
End If
If Acsr.5 = 1 Then Start Timer1
If Tim = 0 Then
If Acsr.5 = 0 Then
Portb.7 = 0
Else
Portb.7 = Puls
End If
End If
If Timer1 > 15624 Then Puls = 1
If Timer1 > 31249 Then
Timer1 = 0
Puls = 0
If Acsr.5 = 1 Then Incr Time_sec
If Acsr.5 = 0 Then Decr Time_sec
End If
If Time_sec >= Tim Then
Time_sec = Tim
If Tim <> 0 Then A = 1
Else
If Time_sec = 0 Then
Stop Timer1
A = 0
Portb.7 = 0
End If
End If
If A = 1 Then Portb.7 = Puls
Loop
End
Кто на чем чаще пишет для AVR и не только?
в AVR
Опубликовано
Ну раз пошла такая пьянка, вставлю и я свои пять копеек. Лично я против си и асемблера ничего плохого не имею и вообще считаю глупо спорить какой язык лучше. Каждый язык по своему интересен. Я например пишу на бэйсике(Bascom-AVR)и пока доволен, иногда поверхностно касаюсь си и асемблера, но считаю что без знания архетектуры контроллера ничего хорошего не получиться. Кто считает что Bascom для начинающих, несоглашусь, в нём можно писать и серьёзные проекты. Недавно занимался проектом в котором победила дружба, в устройстве было три микроконтроллера, две штуки Attiny2313A в одной программа была написана на асемблере, в другой на си, а третий Atmtga8A программа написана в Bascome, причём Atmtga8A общается с одой Attiny2313A по USART и всё прекрасно работает.Bascom к тому же позволяет и асемблеровские вставки писать. Вообще есть большое желание изучить и си и асемблер, но как обычно не хватает времени, а для этого как известно времени нужно много.
Ну и в заключении, вот набросал програмку к вашей задачи. В пол часа конечно не уложился, вместе со схемкой гдето часа 1,5 ушло. В протеусе работает как часы.
Единственное отступление, что светодиод включается не нулём, а еденицей. Ну не привык я так светодиоды подключать.