RTV forum PL | NewsGroups PL

Konfiguracja wyjść w ATtiny 2313: Problemy z PWM na pinie PORTD.6 w Bascomie

attiny 2313 i portd.6

NOWY TEMAT

elektroda NewsGroups Forum Index - Elektronika Polska - Konfiguracja wyjść w ATtiny 2313: Problemy z PWM na pinie PORTD.6 w Bascomie

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 Smile


--
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ś Wink)
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 Smile


Bardzo dziekuje!

--
Lukasz Sczygiel

--
Wysłano z serwisu OnetNiusy: http://niusy.onet.pl

elektroda NewsGroups Forum Index - Elektronika Polska - Konfiguracja wyjść w ATtiny 2313: Problemy z PWM na pinie PORTD.6 w Bascomie

NOWY TEMAT

Regulamin - Zasady uzytkowania Polityka prywatnosci Kontakt RTV map News map