Problem z Attiny2313

To forum jest dla wszystkich pasjonatów mikrokontrolerów AVR Atmela. Wymiana doświadczeń i pomoc dla początkujących w pisaniu programów zarówno w C, Asemblerze jak i BASCOM. Zapraszam znawców tematu, aby pomogli wszystkim początkującym!
Kris1989

Problem z Attiny2313

Post autor: Kris1989 » 22 lip 2007, 18:21

Witam wszystkich.
Postanowiłem się w końcu wziąć za mikro kontrolery i zakupiłem Attiny2313 . Wykonałem stosowny programator Sample Electronics , który znalazłem w polskim help-ie do Bascoma . Fuse bity ustawiłem pod oscylator 4MHz, wszystko do tej pory było dobrze , program skompilowany żadnych błędów. Wgrałem program do procka i patrze co się dzieje, dioda miga nawet bez przyciśnięcia przyciska a ,gdy zbliżę dłoń do przyciska to dioda zaczyna wariować.
Co może być nie tak , może program ?
Proszę o odpowiedź.

Kod: Zaznacz cały

'porgam do migania diod led
$crystal = 4000000

Config Portd = &B1111101
Portd = &B1111101
Config Portb = &B11111111
Portb = &B11111111

Do

If Pind.1 = 0 Then

Portb.3 = 0

Waitms 500

Portb.3 = 1

Waitms 500

End If

Loop


Pozdro

Awatar użytkownika
gwozdex
Użytkownik
Posty: 879
Rejestracja: 24 lut 2006, 10:04
Lokalizacja: Czechowice-Dziedzice
Kontakt:

Post autor: gwozdex » 22 lip 2007, 18:29

skozystaj z polecenia DEBOUNCE. w chelpie jest przykładowy programik który powinien Ci wyjasnić jak stosować to polecenie. Powodzenia

Awatar użytkownika
Krystian1989
-
Posty: 47
Rejestracja: 06 kwie 2007, 8:56
Lokalizacja: TBG
Kontakt:

Post autor: Krystian1989 » 23 lip 2007, 10:07

Teraz dodałem to polecenie DEBOUNCE, ale dalej nic to nie wniosło procek zachowuje się tak samo czyli dioda miga sama. I po wgraniu tego programu nie mogę wyczyścić programu a gdy biorę opcję Identify chip to wyskakuje takie coś: :arrow: Culd

Kod: Zaznacz cały


'porgam do migania diod led
$crystal = 4000000



Config Portd = &B1111101
Portd = &B1111101
Config Portb = &B11111111
Portb = &B11111111

Do

Debounce Pind.1 , 0 , Pr , Sub

Pr:

Portb.3 = 0

Waitms 500

Portb.3 = 1

Waitms 500



Loop

Awatar użytkownika
gwozdex
Użytkownik
Posty: 879
Rejestracja: 24 lut 2006, 10:04
Lokalizacja: Czechowice-Dziedzice
Kontakt:

Post autor: gwozdex » 23 lip 2007, 10:11

A jak masz podłączony przycisk? Między mase a PinD.1 czy miedzy PinD.1 a "plus" zasilania??

Awatar użytkownika
Krystian1989
-
Posty: 47
Rejestracja: 06 kwie 2007, 8:56
Lokalizacja: TBG
Kontakt:

Post autor: Krystian1989 » 23 lip 2007, 10:15

Między PD.1 a masę , czyli pin 3 na switch-a i do masy>

Awatar użytkownika
gwozdex
Użytkownik
Posty: 879
Rejestracja: 24 lut 2006, 10:04
Lokalizacja: Czechowice-Dziedzice
Kontakt:

Post autor: gwozdex » 23 lip 2007, 10:28

Sprobuj wpisać:

Kod: Zaznacz cały

Portd = &B1111111
zamiast tego co jest.

Awatar użytkownika
Krystian1989
-
Posty: 47
Rejestracja: 06 kwie 2007, 8:56
Lokalizacja: TBG
Kontakt:

Post autor: Krystian1989 » 23 lip 2007, 10:32

Napisalem co się działo

Kod: Zaznacz cały

Teraz dodałem to polecenie DEBOUNCE, ale dalej nic to nie wniosło procek zachowuje się tak samo czyli dioda miga sama. I po wgraniu tego programu nie mogę wyczyścić programu a gdy biorę opcję Identify chip to wyskakuje takie coś: :arrow: Culd 
Ostatnio zmieniony 23 lip 2007, 10:33 przez Krystian1989, łącznie zmieniany 1 raz.

Awatar użytkownika
Topek
-
Posty: 9
Rejestracja: 07 maja 2006, 15:52
Lokalizacja: Poznań
Kontakt:

Post autor: Topek » 23 lip 2007, 10:32

A ja proponuję wyjąć obsługę diody POZA pętlę DO..LOOP. I dodać na końcu Return :)

Kod: Zaznacz cały

'porgam do migania diod led 
$crystal = 4000000 



Config Portd = &B1111101 
Portd = &B1111101 
Config Portb = &B11111111 
Portb = &B11111111 

Do 

Debounce Pind.1 , 0 , Pr , Sub 

Loop


Pr: 

Portb.3 = 0 

Waitms 500 

Portb.3 = 1 

Waitms 500 

Return


Awatar użytkownika
Krystian1989
-
Posty: 47
Rejestracja: 06 kwie 2007, 8:56
Lokalizacja: TBG
Kontakt:

Post autor: Krystian1989 » 23 lip 2007, 10:36

Teraz mam takie coś :



Obrazek




Co jest nie tak ????

Awatar użytkownika
gwozdex
Użytkownik
Posty: 879
Rejestracja: 24 lut 2006, 10:04
Lokalizacja: Czechowice-Dziedzice
Kontakt:

Post autor: gwozdex » 23 lip 2007, 10:39

No tak ale przecież kolega Kris1989 skonfiguraował port tak ze " na wstępie" ma on wartośc "0" na pinD.1 a potem sprawdza czy on jest "0" poleceniem debounce. myle sie?? Wg. mnie pinD.1 ma być skonfigurowany jako wejscie ze stanem spoczynkowym = "1".

:arrow: Topek
Jasne że masz racje! Do- Loop podstawa :)

Awatar użytkownika
Krystian1989
-
Posty: 47
Rejestracja: 06 kwie 2007, 8:56
Lokalizacja: TBG
Kontakt:

Post autor: Krystian1989 » 23 lip 2007, 10:59

Dobra w porządku program jest dobry. Ale teraz nie da się go zaprogramować napisałem to dwa posty wyżej.


Co może być nie tak ????

ZbeeGin

Post autor: ZbeeGin » 23 lip 2007, 17:19

Krystian1989 pisze:Ale teraz nie da się go zaprogramować napisałem to dwa posty wyżej.
To odepnij diody z wyprowadzeń, które wykorzystujesz do programowania.

Awatar użytkownika
Krystian1989
-
Posty: 47
Rejestracja: 06 kwie 2007, 8:56
Lokalizacja: TBG
Kontakt:

Post autor: Krystian1989 » 23 lip 2007, 17:22

Nic to nie dało nadal ten sam komunikat.

ZbeeGin

Post autor: ZbeeGin » 23 lip 2007, 17:26

Na linii MISO masz rezystor? Jeśli tak to jaki?

Awatar użytkownika
Krystian1989
-
Posty: 47
Rejestracja: 06 kwie 2007, 8:56
Lokalizacja: TBG
Kontakt:

Post autor: Krystian1989 » 23 lip 2007, 17:30

Nie ma nic , zwykłe połączenie.

ODPOWIEDZ