Lukasz Sczygiel
Guest
Fri Mar 05, 2010 4:22 pm
Robie sobie lampke na programowym pwm. W sumie to takie sobie testy wiec prosze
sie nie denerwowac ze basco i ze brzydko. Narazie mecze sie z problemami na
warstwie podstawowej. Oto szczegoly:
Caly port D mam ustawiony na output.
Config Portd.0 = Output
Config Portd.1 = Output
Config Portd.2 = Output
Config Portd.3 = Output
Config Portd.4 = Output
Config Portd.5 = Output
Config Portd.6 = Output
Config Portd.7 = Output
albo tak (zadna roznica)
Config Portd = Output
I potem w kodzie programu mam komende:
Portd = &B11111111
diody pinow 0-4 i 6 sie zapalaja
Portd = &B00000000
Pin 1 jest zapalony a reszta ciemna.
Inaczej:
piny portu D sa:
0,2,3,4,6-toggle go przelacza.
1- zawsze wlaczony
5,7 zawsze wylaczony
Po przydlugim wstepie:
Znalazlem na elektrodzie przyklad z ksiazki wiazani i tam nie trzeba nijak
specjalnie inicjalizowac tego procka
http://www.elektroda.pl/rtvforum/topic1572355.html zeby wszystkie piny dzialaly.
Zweryfikowalem ze ULN2803 dziala ok i zapala diody jak trzeba.
Czy mam uwalony procek czy jednak gdzies cos trzeba zaptaszyc?
wersja bascoma
BASCOM-AVR IDE Version : 1.11.8.3
Compiler: Version 1.11.8.3
Podsylam poczatek mojego programiku:
$regfile = "attiny2313.dat"
$crystal = 8000000
$baud = 9600
$hwstack = 32 ' default use 32 for
the hardware stack
$swstack = 10 ' default use 10 for
the SW stack
$framesize = 40
Config Portd.0 = Output
Config Portd.1 = Output
Config Portd.2 = Output
Config Portd.3 = Output
Config Portd.4 = Output
Config Portd.5 = Output
Config Portd.6 = Output
Config Portd.7 = Output
Dim Takt1 As Byte
Dim Takt2 As Byte
'Dim Opoznienie1 As Byte
'Dim Etap1 As Byte
Dim Led0 As Byte
Dim Led1 As Byte
Dim Led2 As Byte
Dim Led3 As Byte
Dim Led4 As Byte
Dim Tmp As Word
Dim Suma As Word
Dim Licznik1 As Word
'Dim Licznik2 As Word
Dim Licznik3 As Byte
'Dim Okres1 As Word
Const Okres = 50
Const Okres2 = 400
Declare Function Jasnosc(byref Stopien As Word) As Byte
'Portd = &B11111111
Portd = &B00000000
--
Lukasz Sczygiel
--
Wysłano z serwisu OnetNiusy:
http://niusy.onet.pl
Zibi-Gliwice
Guest
Fri Mar 05, 2010 5:15 pm
Quote:
Robie sobie lampke na programowym pwm. W sumie to takie sobie testy wiec
prosze
sie nie denerwowac ze basco i ze brzydko. Narazie mecze sie z problemami
na
warstwie podstawowej. Oto szczegoly:
Caly port D mam ustawiony na output.
Config Portd.0 = Output
Config Portd.1 = Output
Config Portd.2 = Output
Config Portd.3 = Output
Config Portd.4 = Output
Config Portd.5 = Output
Config Portd.6 = Output
Config Portd.7 = Output
albo tak (zadna roznica)
Config Portd = Output
I potem w kodzie programu mam komende:
Portd = &B11111111
diody pinow 0-4 i 6 sie zapalaja
Portd = &B00000000
Pin 1 jest zapalony a reszta ciemna.
Inaczej:
piny portu D sa:
0,2,3,4,6-toggle go przelacza.
1- zawsze wlaczony
5,7 zawsze wylaczony
Port D1 to też TXD może masz włączoną transmisję?
Port D6 to też ICP czyli input capture pin dla Timer/Counter1, moze tam coś
ustawione
Port D7 w tym procku nie istnieje. Conajwyżej rejestr przechowuje wartość.
Zbyszek
Lukasz Sczygiel
Guest
Fri Mar 05, 2010 5:49 pm
Quote:
Port D1 to też TXD może masz włączoną transmisję?
Port D6 to też ICP czyli input capture pin dla Timer/Counter1, moze tam coś
ustawione
No wlasnie standardowo programik napisalem a tu zonk.
Quote:
Port D7 w tym procku nie istnieje. Conajwyżej rejestr przechowuje wartość.
To juz wyprostowalem sobie. Dioda jest podpieta pod PB0 i dziala jak powinna

--
Lukasz Sczygiel
--
Wysłano z serwisu OnetNiusy:
http://niusy.onet.pl
Jarek
Guest
Sat Mar 06, 2010 11:31 am
Ogólnie tak jak kolega napisał w programie masz wystawianie na portd 8
bitowej liczby, a portd w attinny 2313 jest 7 bitowy od 0 do 6 włącznie i
myśle, że przez to Ci wariowało. Czyli powinno być tak:
config portd = &B1111111 ' cały portd na output
portd = &B0000000 'cały portd podciągnięty do 1
pierwsza liczba po &B oznacza najwyzszy nr portu czyli w tym przypadku 7
ostatnia najnizszy czyli 0.
Pozdrawiam Jarek O.
Użytkownik "Lukasz Sczygiel" <ptokiWYTNIJTO@poczta.onet.pl> napisał w
wiadomości news:3461.0000037b.4b913629@newsgate.onet.pl...
Quote:
Port D1 to też TXD może masz włączoną transmisję?
Port D6 to też ICP czyli input capture pin dla Timer/Counter1, moze tam
coś
ustawione
No wlasnie standardowo programik napisalem a tu zonk.
Port D7 w tym procku nie istnieje. Conajwyżej rejestr przechowuje
wartość.
To juz wyprostowalem sobie. Dioda jest podpieta pod PB0 i dziala jak
powinna :)
--
Lukasz Sczygiel
--
Wysłano z serwisu OnetNiusy:
http://niusy.onet.pl
Konop
Guest
Sun Mar 07, 2010 11:51 pm
Quote:
config portd = &B1111111 ' cały portd na output
portd = &B0000000 'cały portd podciągnięty do 1
pierwsza liczba po &B oznacza najwyzszy nr portu czyli w tym przypadku 7
ostatnia najnizszy czyli 0.
Chyba coś Ci się pomieszało!! Wpisywanie 1 do Congif Port powoduje
ustawienie portu na WYJŚCIE (to akurat napisałeś

)
Ale jak jest WYJŚĆIE, to pin nie jest podciągany... tylko albo daje
pełne VCC albo GND. Po komendzie:
portd = &B0000000 wszystkie wyjścia będą miały stan zero, czyli będą
"zwarte z masą"...
--
Pozdrawiam
Konop
Lukasz Sczygiel
Guest
Sat Apr 03, 2010 10:36 am
Quote:
Robie sobie lampke na programowym pwm. W sumie to takie sobie testy wiec prosze
sie nie denerwowac ze basco i ze brzydko. Narazie mecze sie z problemami na
warstwie podstawowej. Oto szczegoly:
Dziekuje wszystkim za podpowiedzi.
Troche sie posunalem do przodu.
Wszystkie piny poza pd.1 dzialaja prawidlowo.
Problemem w przypadku pinow pd.5 i 7 bylo odpowiednio: zle polutowanie i zle
oprogramowanie w bascomie.
Pozostal mi problem z pd.1
pd.1 swieci caly czas. Zweryfikowalem ze mostkowanie mikrokontrolera poprawnie
zapala i gasi diode (uC mam na podstawce).
Poczatek programu mam taki:
$regfile = "attiny2313.dat"
$crystal = 8000000
$baud = 9600
$hwstack = 32 ' default use 32 for
the hardware stack
$swstack = 10 ' default use 10 for
the SW stack
$framesize = 40
Config Portd.0 = Output 'dioda 0
Config Portd.1 = Output 'dioda 1
Config Portd.2 = Output 'dioda 2
Config Portd.3 = Output 'dioda 3
Config Portd.4 = Output 'dioda 4
Config Portd.5 = Output 'dioda 5
Config Portd.6 = Output 'dioda 6
Config Portb.0 = Output 'dioda 7
Nie odzywalem sie tyle bo kupowalem nowy scalaczek aby miec pewnosc ze nie mam
ubitego portu. Ale po wsadzeniu nowej sztuki dalej jest tak samo.
Ustawienie portd.1 na input nie zmienia niczego w dzialaniu calosci.
Wyzerowanie tego portu gdziekolwiek w programie nie gasi portu.
Wiec krotko:
Czy ktos kiedys uzywal portu pd.1 jako wyjscia w tym kontrolerze?
Ten port to TXD i w dokuemntacji wyczytalem ze trzeba odpowiedni rejestr wygasic
aby ten port dzialal jako in/out. Czy w bascomie tez trzeba sobie go wygasic?
--
Lukasz Sczygiel
--
Wysłano z serwisu OnetNiusy:
http://niusy.onet.pl
Butek
Guest
Sat Apr 03, 2010 12:02 pm
W dniu 10-04-03 12:36, Lukasz Sczygiel pisze:
Quote:
Pozostal mi problem z pd.1
pd.1 swieci caly czas. Zweryfikowalem ze mostkowanie mikrokontrolera poprawnie
zapala i gasi diode (uC mam na podstawce).
Poczatek programu mam taki:
$regfile = "attiny2313.dat"
$crystal = 8000000
$baud = 9600
O ile pamietam, to BASCOM w momencie uzycia dyrektywy $baud w programie
wlacza sprzetowy UART i tu zapewne tkwi Twoj problem, zakomentuj ta
linie na chwile i powinno zadzialac od pierwszego strzalu.
Quote:
Czy w bascomie tez trzeba sobie go wygasic?
Stawiam, ze tak.
--
butek
Safety note: Don't put all your enriched uranium hexafluoride in one
bucket. Use at least two or three buckets and keep them in separate
corners of the room. This will prevent the premature build-up of a
critical mass.
Lukasz Sczygiel
Guest
Sat Apr 03, 2010 2:06 pm
Quote:
W dniu 10-04-03 12:36, Lukasz Sczygiel pisze:
Pozostal mi problem z pd.1
pd.1 swieci caly czas. Zweryfikowalem ze mostkowanie mikrokontrolera poprawnie
zapala i gasi diode (uC mam na podstawce).
Poczatek programu mam taki:
$regfile = "attiny2313.dat"
$crystal = 8000000
$baud = 9600
O ile pamietam, to BASCOM w momencie uzycia dyrektywy $baud w programie
wlacza sprzetowy UART i tu zapewne tkwi Twoj problem, zakomentuj ta
linie na chwile i powinno zadzialac od pierwszego strzalu.
O! Wiedzialem ze to ma cos wspolnego z uart-em. To byl strzal w 10-ke.
Zmylilo mnie to ze RXD dzialal normalnie. Po wywaleniu tej dyrektywy poszlo od kopa.
Masz u mnie duzego ostrego kuraka przy pierwszej okazji kiedy cie trafie :)
Quote:
Czy w bascomie tez trzeba sobie go wygasic?
Stawiam, ze tak.
Wygrales. Kurak do odbioru po uprzednim zajawieniu

Bardzo dziekuje!
--
Lukasz Sczygiel
--
Wysłano z serwisu OnetNiusy:
http://niusy.onet.pl