Skocz do zawartości

Jedna mruga, druga nie


Pomocna odpowiedź

Napisano

Witam!

Mam układ składający się z:

➡️ ATMEGA32-16PU

➡️ Złącza programatora

➡️ Klika rezystorów i diod.

➡️Mikroswitch (na razie nie jest wykorzystywany)

Wgrałem taki program, który ma mrugać diodą:

$regfile = "m32def.dat"
$crystal = 1000000


'Konfiguracja portów
Config Portc = Output
Portc = &B00000000
Config Portb = Input
Portb = &B00000000

Do
Toggle Portc.0
Waitms 50
Toggle Portc.0
Waitms 500

Loop

End

I wszystko jest ok, dopóki nie zmienię w programie żeby mrugała druga, albo trzecia dioda.

Jak zamiast toggle Portc.0 dam toggle Portc.2 to nie działa.

Przepraszam za niezbyt dobre wykonanie schematu.

Aha, nie ma tam źródła napięcia, bo na razie zasilam przez programator.

Schemat w załączniku (R1=240 R2=10K)

__________

Komentarz dodany przez: Treker

schematek11.thumb.jpg.104fe9e7c3f551f686b0167093ba44a3.jpg

Zapewne jest to spowodowane tym, że na pinach portu C jest zlokalizowany interfejs JTAG. Standardowo jest on włączony przez co nie można ich używać "po swojemu". Żeby to zmienić musiałbyś wyłączyć JTAG'a w fuse bitach. Albo po prostu wykorzystaj inny port.

  • Pomogłeś! 1

Ok, dzięki. Później poczytam o tych fuse bitach.

A mógłbyś jeszcze sprawdzić czy switch jest dobrze podłączony?

Bo daje taki kod:

If Pinb.0 = 1 Then
  Set Portc.0
Else
  Reset Portc.0
End If

I ta dioda cały czas się świeci, niezależnie czy przycisk jest wciśnięty czy nie.

Podciągnąłem to do masy, ale dalej nie działa.

Możliwe że 10K to za duży rezystor? Jak tak to ile proponujecie dać?

Przecież to podciągnięcie da się (chyba) tylko na jeden sposób zrobić.

Czy to że wcześniej ten switch był podłączony do plusa, mogło uszkodzić

ten pin w procesorze?

lukix, w jeden poprawny 🙂 Wybacz podejrzliwość, ale różne rzeczy już tu widzieliśmy 😉 A tak w ogóle, to najlepiej jest tak projektować układ żeby switch zwierał do masy. Wtedy można skorzystać z wewnętrznych pull-up'ów Atmegi.

Wybacz podejrzliwość, ale różne rzeczy już tu widzieliśmy 😉

Hehe... Czyli już się nie zdziwicie jak zobaczycie mój schemat 😉

Problem w tym że przy rysowaniu schematu też mogłem się pomylić 😖

schematek12.thumb.jpg.18c7b3b668aaad890455784d9ea0abe5.jpg

cmd to jest ten pin w atmedze, VDD to plus, a tam na dole masa?

Bo podłączyłem tak i po chwili poleciał dymek 😉 (Mam nadzieję że nic się nie stało)

Jeszcze sprawdzę czy wszystko dobrze połączyłem, ale wydaje mi się że tak.

I mógłbyś mi jeszcze wytłumaczyć czemu to ma być tak podłączone, bo nie

rozumiem tego 😕 Czemu nie może być tak jak pokazałem post wcześniej?

  • 2 tygodnie później...

Obrazowo mówiąc, jeśli nie masz podciągnięcia i przyciskiem ustawisz stan niski na pinie uC, to po puszczeniu przycisku nie ma nic, co by spowodowało, że stan zmieni Ci się na wysoki.

Schemat pomijając fakt, że jest paskudny wydaje się być ok 😋

Bądź aktywny - zaloguj się lub utwórz konto!

Tylko zarejestrowani użytkownicy mogą komentować zawartość tej strony

Utwórz konto w ~20 sekund!

Zarejestruj nowe konto, to proste!

Zarejestruj się »

Zaloguj się

Posiadasz własne konto? Użyj go!

Zaloguj się »
×
×
  • Utwórz nowe...