Witam,
Mam taki problem,piszę sobie sterownik LEDów na ATMEGA8515 i problem polega na tym, że nie wiem za bardzo jak wysyłać jakieś informacje z komputera do procka. Urządzenie, którym chce sterować to sterownik kilku diod RGB. Po nizej przedstawiam program jak chce sterować tymi LEDami (przed chwilą testowałem i działa bez zarzutów):
W programie są tylko 2 pary LEDów, jednak później będzie ich więcej. Myślałem o RS232, ale jakoś nie wiem, jak zapisać w zmiennej cały przesyłany ciąg i potem go porozdzielać. Lub I2C, jednak potrzebny byłby jakiś konwerter np. USB -> I2C i tęz nie mam pojęcia jak z procka zrobić slave, bo się tym nigdy nie bawiłem.
Przesyłane dane mogły by wyglądać tak (dla przypadku 2 diod):
s255.127.255.100.100.100k
255.127.255 - 1sza dioda
100.100.100 - 2ga dioda
lub
1:255.127.255
2:100.100.100
Nie wiem, macie może jakieś pomysły, żeby coś podpowiedzieć.
Pozdrawiam.
Mam taki problem,piszę sobie sterownik LEDów na ATMEGA8515 i problem polega na tym, że nie wiem za bardzo jak wysyłać jakieś informacje z komputera do procka. Urządzenie, którym chce sterować to sterownik kilku diod RGB. Po nizej przedstawiam program jak chce sterować tymi LEDami (przed chwilą testowałem i działa bez zarzutów):
$regfile = "m32def.dat"
$crystal = 8000000
Config Portc = Output
Dim Pwmr1 As Byte
Dim Pwmg1 As Byte
Dim Pwmb1 As Byte
Dim Pwmr2 As Byte
Dim Pwmg2 As Byte
Dim Pwmb2 As Byte
Dim Kier As Byte
Dim Licznik As Byte
Pwmr1 = 255 'chce zmieniać wartości od tąd
Pwmg1 = 255
Pwmb1 = 255
Pwmr2 = 0
Pwmg2 = 0
Pwmb2 = 0 'do tąd
Kier = 0
Portc.0 = 0
Portc.1 = 0
Portc.2 = 0
Portc.3 = 0
Portc.4 = 0
Portc.5 = 0
Do
For Licznik = 1 To 255
If Licznik <= Pwmr1 Then
Portc.1 = 1
Else
Portc.1 = 0
End If
If Licznik <= Pwmg1 Then
Portc.0 = 1
Else
Portc.0 = 0
End If
If Licznik <= Pwmb1 Then
Portc.2 = 1
Else
Portc.2 = 0
End If
Waitus 10
If Licznik <= Pwmr2 Then
Portc.4 = 1
Else
Portc.4 = 0
End If
If Licznik <= Pwmg2 Then
Portc.3 = 1
Else
Portc.3 = 0
End If
If Licznik <= Pwmb2 Then
Portc.5 = 1
Else
Portc.5 = 0
End If
Waitus 10
Next Licznik
LoopW programie są tylko 2 pary LEDów, jednak później będzie ich więcej. Myślałem o RS232, ale jakoś nie wiem, jak zapisać w zmiennej cały przesyłany ciąg i potem go porozdzielać. Lub I2C, jednak potrzebny byłby jakiś konwerter np. USB -> I2C i tęz nie mam pojęcia jak z procka zrobić slave, bo się tym nigdy nie bawiłem.
Przesyłane dane mogły by wyglądać tak (dla przypadku 2 diod):
s255.127.255.100.100.100k
255.127.255 - 1sza dioda
100.100.100 - 2ga dioda
lub
1:255.127.255
2:100.100.100
Nie wiem, macie może jakieś pomysły, żeby coś podpowiedzieć.
Pozdrawiam.