Zeus писал(а):внутреннюю структуру микроконтроллера все равно надо знать?
я бы советовал писать сразу на асм.
тем более, что внутреннюю структуру микроконтроллера все равно знать надо, а с асм это получится быстрее всего.
Технический форум по робототехнике.
Zeus писал(а):внутреннюю структуру микроконтроллера все равно надо знать?
Yuraskas писал(а):Т.е. подтяжка не включается?
Yuraskas писал(а):Тема вроде про баском, надеюсь, начинающему можно задавать здесь вопросы...
Немного непонятен момент с включением внутренней подтяжки на ноге сконфигурированной на вход, т.е. пишу Config PINC.0 = Input, смотрю в протеусе - пин находится в состоянии Z. Посмортрел код в АВР-студии, включения подтяжки вроде не нашел... Т.е. подтяжка не включается?
Sub Вов
Tem1 = A
Tem2 = B
If Temp => Tem1 Then : Реле = 1 : End If
If Temp <= Tem2 Then : Реле = 0 : End If
Вклвыкл_Реле:
Toggle Реле 'Инверсия логического уровня на ножке PORTD.4
Return 'Возврат из подпрограммы в точку где произошло прерывание
End Sub
If Temp <= Tem2 Then : Реле = 0 : End If
If Temp <= Tem2 And Кнопка <> нажата Then : Реле = 0 : End If
Set Portd.2 : Вкл_выкл Alias Pind.2 'Клавиша для принудительного вкл. и выкл. реле
Config Portd.4 = Output : Реле Alias Portd.4
Config Int0 = Falling 'Разрешаем прерывания по спаду напряжения On Int0
On Int0 Вклвыкл_Реле 'Задаём метку перехода по прерыванию
Enable Interrupts 'Разрешаем прерывания
Enable Int0 'Разрешаем прерывания на ножке int0
Sub Вов
Tem1 = A
Tem2 = B
If Temp => Tem1 Then : Реле = 1 : End If
If Temp <= Tem2 Then : Реле = 0 : End If
Вклвыкл_Реле:
Toggle Реле 'Инверсия логического уровня на ножке PORTD.4
Return 'Возврат из подпрограммы в точку где произошло прерывание
End Sub
Do
Call Температура : Call Вов
Locate 1 , 1
Lcd Time$ ; "**" ; Celsium ; "**"
Locate 2 , 1
Lcd Date$ ; "**" ; Fahrenhei ; "**"
If Меню = 0 Then : Gosub МенюП : End If
Loop
Debounce
'*****************************Оcновной_цикл_программы***************************
Вкл._от_перемены_температуры:
Disable Int0 'Запрещаем прерывания на Int0
Sound Пищалка , 110 , 213
'*******************************************************************************
Do
Call Температура 'Вызвать подпрограмму(процедуру) "Температура"
Call Вов 'Вызвать подпрограмму(процедуру) "Вов"
Locate 1 , 1
Lcd Time$ ; "**" ; Celsium ; "***"
Locate 2 , 1
Lcd Date$ ; "**" ; Fahrenhei ; "**"
If Меню = 0 Then : Gosub МенюП : End If 'При нажатие клавиши меню, переходим на метку МенюП
Debounce Вкл_выкл , 0 , Вкл._от_клавиши
Loop
'*******************************************************************************
Вкл._от_клавиши:
Enable Int0 'Разрешаем прерывания на Int0
Sound Пищалка , 140 , 299
'*******************************************************************************
Do
Call Температура 'Вызвать подпрограмму(процедуру) "Температура"
Locate 1 , 1
Lcd Time$ ; "**" ; Celsium ; "***"
Locate 2 , 1
Lcd Date$ ; "**" ; Fahrenhei ; "**"
If Меню = 0 Then : Gosub МенюП : End If 'При нажатие клавиши меню, переходим на метку МенюП
Debounce Вкл_выкл , 0 , Вкл._от_перемены_температуры
Loop
'*******************************************************************************