Dziękuje za odpowiedzi i wskazówki i przepraszam, że tak późno odpisuje, już coś zaczęło działać uwiesiłem się tego następnie przestało znowu zaczęło i tak minęły 2 tygodnie tym bardziej, że nie mogłem codziennie z tym siedzieć. Wracając do tematu chciałbym przedstawić go jeszcze raz (postaram się dokładniej z uwględnieniem eagle) z odpowiedziami na wasze wskazówki i moimi drobnymi przemyśleniami.
1. Przyporządkowanie diod do portów
Zrobiłem inne połączenie niż wcześniej obecnie jest to skonstruowane w taki sposób, że mam wykorzystane wszystkie piny mikrokontrolera.
Oczywiście cały czas korzystam z mikrokontrolera ATMega32A-PU. Dodaje link do wyprowadzeń ATMega16/32
[url=]http://atmega.info/artykuly/podstawy/3-opis-wyprowadzen-atmega16-atmega32[/url]
Katody (Poniższe diody od LED1 do LED16 są przyłączone anodami i połączone z pinem PA0)
LED1 = PB0
LED2 = PB1
LED3 = PB2
LED4 = PB3
LED5 = PB4
LED6 = PB5
LED7 = PB6
LED8 = PB7
LED9 = PD0
LED10 = PD1
LED11 = PD2
LED12 = PD3
LED13 = PD4
LED14 = PD5
LED15 = PD6
LED16 = PD7
Katody (poniższe diody od LED17 do LED30 połączone są anodami i połączone z pinem PA1)
LED17 = PC0
LED18 = PC1
LED19 = PC2
LED20 = PC3
LED21 = PC4
LED22 = PC5
LED23 = PC6
LED24 = PC7
LED25 = PA2
LED26 = PA3
LED27 = PA4
LED28 = PA5
LED29 = PA6
LED30 = PA7
Resztę połączeń pokaże na załączonych obrazkach:
1) Układ tymczasowo jest zasilany z akumulatora samochodowego
Pierwsza płytka zrobiona jest według schematu(schematy robione w eagle proszę o wyrozumiałość to moje pierwsze rysunki):
[img]

[/img]
Z płytki na której jest stabilizator do +12V i GND podpięte są dodatkowe kabelki prowadzące do silniczka.
2) wyprowadzenia z płytki ze stabilizatorem idą +5V i GND na Jacka, który przekazuje napięcie na wejście Jacka NYS216, które jest przylutowane do płytki
schemat połączenia Jacka z wejściem:
3) Następnie na płytce po przylutowaniu wejścia Jacka NYS216, co za tym idzie przyłączeniu zasilania do płytki, schemat połączeń przedstawia się następująco:
Widoczny na schemacie uC, to tak naprawdę podstawka wlutowana w płytkę, na która w celach bezpieczeństwa dopiero później wkładam uC.
Dodam tutaj, że przy użyciu miernika cały układ został sprawdzony pod względem elektryczności. Zostało sprawdzone:
- czy stabilizator podaje napięcie +5V
- czy napięcie +5V jest w miejscach, które powinno VCC, AVCC, AREF
- czy nie ma zwarć GND zasilanie
- płytka jest już kupiona w poziomo ułożonymi ścieżkami
- tam gdzie jest wlutowane wejście Jacka, które ma 6 nóżek 2 górne odpowiadają za GND, a 4 dolne za zasilanie, co idzie dalej na mikrokontroler
Następnie został sprawdzone diody miernikiem, wkładając plus i minus w odpowiednie wejścia np. zapalając diodę LED8 należy minus do PB7 a plus do PA0
LED 20 minus do PC3 a plus do PA1 itd. zgodnie z połączeniami.
Wszystkie diody badane po kolei się zaświecały.
2. Teraz kwestia uC ustawiłem jego działanie na zewnętrzny oscylator, widoczny na schemacie ostatniej płytki:
avrdude -c usbasp -p m8 -U hfuse:w:0xC9:m -U lfuse:w:0xFF:m
Mikrokontroler sprawdzany komendą:
avrdude -c usbasp -p m32
uC podpięty do programatora usbasp, zwraca poprawne informacje, również przy wgrywaniu pliku .hex na programatorze pali się zielona dioda wszystko wyskakuje, że program został załadowany poprawnie.
Poniżej wrzucam nowy program wraz z opisem za co moim zdaniem co jest odpowiedzialne:
Zaloguj się, aby zobaczyć kod
Powyższy kod jest dla uruchomienia bez silniczka. Raz to działa, a raz nie np. początkowe świecą się co dwa następnie, wygasa później pozostałe świecą się co dwa i kiedy mają wszystkie zgasnąc ponownie na 2 sekundy, świeci się kilka tak jakby stany wysokie na niektórych zostawały.
Cytat:
Jak usunąłem tę linijkę kodu kod .c nie chciał się skompilować
Cytat:
nie wyłączałem JTAG, ustawiałem tylko fusebity na zewnętrzny oscylator 16MHz
Cytat: 5. Albo się mylisz pisząc o numerach diod albo sam się wprowadzasz w błąd numerując diody od jedynki. Przyjmij więc numerację zgodną z numeracją pinów, czyli od zera byśmy wiedzieli dokładnie, o których diodach mówisz, a najlepiej nazywaj je nazwami pinów, do których są podłączone.
TheGrudgee napisał:
Używając powyższego programu powinna się świecić ... 1 3 i 5 dioda z portu B
nie ponieważ 0xea (które wpisujesz do PORTB), to binarnie 0b11101010 a przy takim schemacie jak pokazałeś oznacza możliwość świecenia diod na PB0, PB2 i PB4 pod warunkiem ustawienie jedynki na PA0.
Mam nadzieje ze po wyjasnieniu jak podpięte są diody na początku teraz nie będzie omyłek.
Cytat: 8. I najważniejsze - zakomentowałeś opóźnienia w funkcji zapal_diody(). Konsekwencją tego jest że nie zauważasz wykonania jej początkowej części stąd Twoja funkcja sprowadza się właściwie do:
Kod C - [rozwiń]
void zapal_diody(int8_t b, int8_t a)
{
PORTC = a;
PORTA = 2;
PORTB = b;
}
czyli włączenie anod podpiętych pod pin PA1 i piny PB0, PB2 i PB4.
Usunąłem całkiem te komentarze, ponieważ diody mają świecić w jednym pionie w tym samym czasie. Natomiast linie pionowe, które wyświetlają różne stany w różnym czasie zapisane są w funkcji main poprzez opóźnienia pionowych linii. Takżę według mnie tego nie powinno być, a zostało po prostu z jakiś wcześniejszych przemyśleń.
Załączam inny kod który, został włączony na kręcącym się globusie. Raz działało dobrze wczoraj ponownie odpaliłem i już nie działało. Silniczek mam 500 rpm, wyszedłem z założenia, że jest jakieś tarcie i zostało 420 rpm. To podzieliłem na 60 sekund zostało 7 rps. Teraz sekunde podzieliłem na 7 wyszło około 140ms. Czyli oreintacyjnie wyliczyłem ile trwa jeden obrót podzieliłem to na 10 stref, żeby przez 2 się paliła część diod od LED5 do LED26 czyli nie powinno się palić 8. Cztery dolne i cztery górne oraz powinny się palić 22 diody w 1/5 jednego obrotu. I tak działało. Następnie po kilku dniach przestało działać świeci się tylko kilka diod generalnie dzieją się dziwne rzeczy.
Kod z opisu wyżej:
Zaloguj się, aby zobaczyć kod
Mam kilka pytań jeśli elektrycznie wydaje się wszystko w porządku, to co w kodzie mogę zmienić, raz działa raz nie. Proszę o podpowiedzi w razie możliwości stopniowe. Nie wiem co mógłbym tu jeszcze napisać. Proszę o pomoc bo jestem powoli zrezygnowany. Czekam z niecierpliwością na pomocne porady.
Pozdrawiam
[/tex][/syntax]