Witam serdecznie!
Zwracam się z prośbą do kolegów z większą wiedzą w tym temacie. Problem błahy, ale rozkładam ręce, pewnie zapomniałem o jakiejś oczywistej rzeczy, oto kod:
mój zegar ma wpisane początkowe nastawy godziny minuty i sekundy, a moduł wykonawczy jest podpięty pod Pinc.2 (uC to Atmega16).
w określonej minucie (docelowo również i godzinie) program ma załączyć moduł wykonawczy ( wybrałem sobie 50 minutę ), ważne jest że sygnałem aktywnym jest RESET pinu, na początku celowo wybrałem 3 piny aby sprawdzić czy moduły je załączają, wszystko działa. Celowo nawet na wyświetlaczu dałem gwiazdkę, gdy załączy się polecenie wykonania ( to działa) ale dochodząc do sedna, nie wiem czemu w określonej minucie moduł się nie włącza. Dodam że JTAG jest wyłączony.
Proszę o pomoc.
Przeniosłem z Programowanie Początkujący.
[Dr.Vee]
Zwracam się z prośbą do kolegów z większą wiedzą w tym temacie. Problem błahy, ale rozkładam ręce, pewnie zapomniałem o jakiejś oczywistej rzeczy, oto kod:
'$sim
$crystal = 8000000
$regfile = "m16def.dat" 'deklaracja zmiennej określającej godziny
Config Lcd = 20 * 4
Config Lcdpin = Pin , Db4 = Portb.5 , Db5 = Portb.4 , Db6 = Portb.3 , Db7 = Portb.2 , E = Portb.6 , Rs = Portb.7
Config Sda = Portc.1
Config Scl = Portc.0
Config Pinc.2 = Output
Config Pinc.4 = Output
Config Pind.5 = Output
Dim M As Byte
Dim S As Byte
Dim H As Byte
Dim Dzien As Byte
Cursor Off
Cls
S = Makebcd(50)
M = Makebcd(49)
H = Makebcd(23)
Dzien = Makebcd(1)
I2cstart
I2cwbyte 160
I2cwbyte 0
I2cwbyte 8
I2cstop
I2cstart
I2cwbyte 160
I2cwbyte 2
I2cwbyte S
I2cwbyte M
I2cwbyte H
I2cwbyte Dzien
I2cstop
Set Portc.2
Set Portc.4
Set Portd.5
Reset Portc.2
Wait 1
Set Portc.2
Reset Portc.4
Wait 1
Set Portc.4
Reset Portd.5
Wait 1
Set Portd.5
Do
I2cstart
I2cwbyte 160
I2cwbyte 2
I2cstart
I2cwbyte 161
I2crbyte S , Ack
I2crbyte M , Ack
I2crbyte H , Ack
I2crbyte Dzien , Nack
I2cstop
S = Makedec(s)
M = Makedec(m)
H = Makedec(h)
Locate 1 , 1
Lcd H ; ":" ; M ; ":" ; S
Locate 2 , 1
Lcd Dzien
If M = 50 Then
Locate 3 , 1
Lcd "*"
Reset Pinc.2
Else
Locate 3 , 1
Lcd " "
Set Pinc.2
End If
Loop
mój zegar ma wpisane początkowe nastawy godziny minuty i sekundy, a moduł wykonawczy jest podpięty pod Pinc.2 (uC to Atmega16).
w określonej minucie (docelowo również i godzinie) program ma załączyć moduł wykonawczy ( wybrałem sobie 50 minutę ), ważne jest że sygnałem aktywnym jest RESET pinu, na początku celowo wybrałem 3 piny aby sprawdzić czy moduły je załączają, wszystko działa. Celowo nawet na wyświetlaczu dałem gwiazdkę, gdy załączy się polecenie wykonania ( to działa) ale dochodząc do sedna, nie wiem czemu w określonej minucie moduł się nie włącza. Dodam że JTAG jest wyłączony.
Proszę o pomoc.
Przeniosłem z Programowanie Początkujący.
[Dr.Vee]
