Kanał - ATNEL tech-forum
Wszystkie działy
Najnowsze wątki



Teraz jest 17 cze 2026, o 22:29


Strefa czasowa: UTC + 1





Utwórz nowy wątek Odpowiedz w wątku  [ Posty: 17 ] 
Autor Wiadomość
PostNapisane: 24 mar 2014, o 05:52 
Offline
Użytkownik

Dołączył(a): 24 mar 2014
Posty: 46
Pomógł: 0

zaciąłem się na Micro kontrolery AVR cz.2 49 minucie.
1. Po skompilowaniu programu (zgodnie z nota katalogową aTtiny2313) i wgraniu wsadu na pinie 11 nie pojawia się stan HI czyli dioda mi nie świeci, czemu? Sprawdziłem każdy pin testerem, tylko Reset i zasilanie mają HI.Log w avrdude jest "zielony". "Load from MCU" wykrywa mi poprawnie procesor.

o to screen:

Obrazek

a to log z avrdude po wgraniu wsadu, to co zaznaczyłem kolorem jest przyczyną? czyli brak ustawienia pinu?:

Launching C:\AVRDUDE\avrdude -pt2313 -cusbasp -b8 -Uflash:w:dida_mig.hex:a
Output:

avrdude: warning: cannot set sck period. please check for usbasp firmware update.
avrdude: AVR device initialized and ready to accept instructions

Reading | ################################################## | 100% 0.00s

avrdude: Device signature = 0x1e910a
avrdude: NOTE: FLASH memory has been specified, an erase cycle will be performed
To disable this feature, specify the -D option.
avrdude: erasing chip
avrdude: warning: cannot set sck period. please check for usbasp firmware update.
avrdude: reading input file "dida_mig.hex"
avrdude: input file dida_mig.hex auto detected as Intel Hex
avrdude: writing flash (60 bytes):

Writing | ################################################## | 100% 0.05s

avrdude: 60 bytes of flash written
avrdude: verifying flash memory against dida_mig.hex:
avrdude: load data flash data from input file dida_mig.hex:
avrdude: input file dida_mig.hex auto detected as Intel Hex
avrdude: input file dida_mig.hex contains 60 bytes
avrdude: reading on-chip flash data:

Reading | ################################################## | 100% 0.03s

avrdude: verifying ...
avrdude: 60 bytes of flash verified

avrdude done. Thank you.

Compiled special for http://forum.atnel.pl (v5.11.1)

avrdude finished

usb asp zainstalowałem jak na filmiku, mkvkalculaor tez widzi procka



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 24 mar 2014, o 08:14 
Offline
Użytkownik
Avatar użytkownika

Dołączył(a): 10 sty 2014
Posty: 448
Lokalizacja: DKL
Pomógł: 53

Trzeba podać stan wysoki na tym pinie po ustaleniu jego kierunku:

Składnia: [ Pobierz ] [ Ukryj ]
język c
Musisz się zalogować, aby zobaczyć kod źródłowy. Tylko zalogowani użytkownicy mogą widzieć kod.

_________________
Migracja z punktu B do punktu C
Pozdrawiam



Ostatnio edytowano 24 mar 2014, o 08:33 przez matw, łącznie edytowano 1 raz

Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 24 mar 2014, o 08:18 
Offline
Moderator
Avatar użytkownika

Dołączył(a): 03 paź 2011
Posty: 27460
Lokalizacja: Szczecin
Pomógł: 1045

ifrook napisał(a):
zaciąłem się na Micro kontrolery AVR cz.2 49 minucie


a może by tak cały poradnik najpierw obejrzeć hmm ?

a nie zacinać się ;) bo tak to zawsze coś nie wyjdzie - co to za program w ogóle ?

wydaje mi się że trzeba zacząć od podstaw programowania w C mikroklocków żeby pisać kod ze zrozumieniem:

http://atnel.pl/mikrokontrolery-avr-jezyk-c.html

czyli książka, a nie tylko przepisywać kod z poradnika ....

ale jeśli już przepisywać dokąd się jeszcze nie ma książki to od początku do końca trzeba obejrzeć - a szczególnie TEN poradnik:

http://mirekk36.blogspot.com/2014/02/ec ... -do-z.html

_________________
zapraszam na blog: http://www.mirekk36.blogspot.com (mój nick Skype: mirekk36 ) [ obejrzyj Kurs EAGLE ] [ mój kanał YT TV www.youtube.com/mirekk36 ]



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 24 mar 2014, o 08:28 
Offline
Użytkownik
Avatar użytkownika

Dołączył(a): 02 sty 2014
Posty: 116
Pomógł: 9

Witam kolegę

Jest tu trochę błędów i kodu przy mało aby to mogło działać. Popraw PD6 na PB6 skoro masz DDRB. I po drugie dopisz PORTB |= (1<<PB6); aby załączyć diodę PORTB &= ~(1<<PB6); aby zgasić.
A jak chcesz aby do Ciebie migała zachęcając do dalszej nauki to w pętli while napisz tak:
PORTB ^= (1<<PB6);
_delay_ms(300);
albo tak:
PORTB |= (1<<PB6);
_delay_ms(150);
PORTB &= ~(1<<PB6);
_delay_ms(150);
Powodzenia

------------------------ [ Dodano po: 3 minutach ]

Mega szybkie to forum. Myślę sobie a odpisze koledze poszedłem zrobić kawę dokończyłem posta a tu już dwie odpowiedzi przede mną. :P

_________________
"Actum ne agas!"



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 24 mar 2014, o 11:58 
Offline
Użytkownik

Dołączył(a): 24 mar 2014
Posty: 46
Pomógł: 0

Czemu mówicie że to nie powinno działać jeśli to jest żywcem przepisane z filmiku Pana Mirka.
Ja na początku chciałbym tylko aby mi się zmienił stan na wysoki, książkę kupie jak będę pewny że "sprzętowo" wszystko ogarnę:)
na pinie 11 dalej nie mam stanu Hi, zrobiłem jak napisał Matw.



aktualnie program wygląda tak:

#include <avr/io.h>
#include <util/delay.h>

int main(void) {

DDRD |= (1<<PD6);
PORTD |= (1<<PD6);
while(1) {


}
}

log z awrdude tak, dalej jest coś o braku ustawienia pinów:

Launching C:\AVRDUDE\avrdude -pt2313 -cusbasp -b8 -Uflash:w:dida_mig.hex:a
Output:

avrdude: warning: cannot set sck period. please check for usbasp firmware update.
avrdude: AVR device initialized and ready to accept instructions

Reading | ################################################## | 100% 0.00s

avrdude: Device signature = 0x1e910a
avrdude: NOTE: FLASH memory has been specified, an erase cycle will be performed
To disable this feature, specify the -D option.
avrdude: erasing chip
avrdude: warning: cannot set sck period. please check for usbasp firmware update.
avrdude: reading input file "dida_mig.hex"
avrdude: input file dida_mig.hex auto detected as Intel Hex
avrdude: writing flash (62 bytes):

Writing | ################################################## | 100% 0.04s

avrdude: 62 bytes of flash written
avrdude: verifying flash memory against dida_mig.hex:
avrdude: load data flash data from input file dida_mig.hex:
avrdude: input file dida_mig.hex auto detected as Intel Hex
avrdude: input file dida_mig.hex contains 62 bytes
avrdude: reading on-chip flash data:

Reading | ################################################## | 100% 0.03s

avrdude: verifying ...
avrdude: 62 bytes of flash verified

avrdude done. Thank you.

Compiled special for http://forum.atnel.pl (v5.11.1)

avrdude finished



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 24 mar 2014, o 12:08 
Offline
Użytkownik
Avatar użytkownika

Dołączył(a): 10 sty 2014
Posty: 448
Lokalizacja: DKL
Pomógł: 53

A zapisałeś projekt w Eclipse przed kompilacją? :)

_________________
Migracja z punktu B do punktu C
Pozdrawiam



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 24 mar 2014, o 12:28 
Offline
Nowy

Dołączył(a): 31 sty 2014
Posty: 20
Pomógł: 1

Ustawienie DDRD |= (1<<PD6); tez zapali diode. Aby tylko dioda sie palila i nic wiecej nie trzeba PORTD |= (1<<PD6); Heh sam z tym walczylem jaks czas nie dawno, ale juz doszlem o co kaman.

------------------------ [ Dodano po: 9 minutach ]

A tak na marginesie po co jest operacja sumy bitowej |= ?? jak zapisze DDR = (1<<PD6), to chyba jest to samo. (DDR-stan poczatkowy) 0b00000000 (operacja sumy bitowej)| (przesuniecie w lewo) 0b00100000 = (wynik) 0b00100000. Czy dobrze to rozumiem?



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 24 mar 2014, o 12:44 
Offline
Użytkownik

Dołączył(a): 24 mar 2014
Posty: 46
Pomógł: 0

ElektroZiomy udało się !!! mruga :D



Ostatnio edytowano 24 mar 2014, o 12:51 przez ifrook, łącznie edytowano 1 raz

Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 24 mar 2014, o 12:45 
Offline
Moderator zasłużony dla forum.atnel.pl
Avatar użytkownika

Dołączył(a): 18 lip 2012
Posty: 3230
Lokalizacja: Kraków - obok FAB5 ATMEL'a
Pomógł: 91

No nie zgaśnie ci bo masz podany tylko jeden stan. Żeby była reakcja trzeba zmienić stan na przeciwny.

_________________
http://www.jaglarz.info



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 24 mar 2014, o 12:55 
Offline
Moderator
Avatar użytkownika

Dołączył(a): 03 paź 2011
Posty: 27460
Lokalizacja: Szczecin
Pomógł: 1045

cyrixus napisał(a):
A tak na marginesie po co jest operacja sumy bitowej |= ?? jak zapisze DDR = (1<<PD6), to chyba jest to samo. (DDR-stan poczatkowy) 0b00000000 (operacja sumy bitowej)| (przesuniecie w lewo) 0b00100000 = (wynik) 0b00100000. Czy dobrze to rozumiem?


w tej książce

http://atnel.pl/mikrokontrolery-avr-jezyk-c.html

sporo wyjaśniam dlaczego czasem warto dodać ten operator OR czyli |= zamiast samo =

szczególnie gdy w kilku liniach dla przejrzystości kodu ustawiasz np bity konfiguracyjne w jednym rejestrze - pomyśl - co się stanie gdy w każdej linii dasz samo = hmmm ?

_________________
zapraszam na blog: http://www.mirekk36.blogspot.com (mój nick Skype: mirekk36 ) [ obejrzyj Kurs EAGLE ] [ mój kanał YT TV www.youtube.com/mirekk36 ]



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 24 mar 2014, o 13:00 
Offline
Użytkownik

Dołączył(a): 24 mar 2014
Posty: 46
Pomógł: 0

Z edytowałem poprzedni post udało się :) mruga proszę ja Was. Na innym "znanym forum" po pierwszym poście powiedzieliby żebym sobie dał spokój ;)



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 24 mar 2014, o 13:05 
Offline
Moderator
Avatar użytkownika

Dołączył(a): 03 paź 2011
Posty: 27460
Lokalizacja: Szczecin
Pomógł: 1045

ifrook napisał(a):
Na innym "znanym forum" po pierwszym poście powiedzieliby żebym sobie dał spokój


Niekoniecznie - pewnie dowiedziałbyś się np że lepiej użyć procka ATxmega :lol: ..... a poza tym to inne znane forum jak już się pewnie przekonałeś jest dla Śpeców przez duże eŚ ;)

_________________
zapraszam na blog: http://www.mirekk36.blogspot.com (mój nick Skype: mirekk36 ) [ obejrzyj Kurs EAGLE ] [ mój kanał YT TV www.youtube.com/mirekk36 ]



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 24 mar 2014, o 13:12 
Offline
Nowy

Dołączył(a): 31 sty 2014
Posty: 20
Pomógł: 1

Mirku mam ksiazke i przeczytalem, no a teraz czas na proby na zywym organizmie i kombinowanie z wlasnymi wypocinami. Bo pisanie na zasadzie kopiuj wklej, lub przepisywanie z ksiazki chyba mija sie z celem. U mnie wszystko smiga na stykowce nawrt odpalilem LCD przez I2C. Ale co z tego jak sie nie rozumie 90% kodu. Tak ze wracam do migajacej diody i sam chcem rozkminic krok po kroku rozne zastosowania operatorow i funkcji. To ja chcialem zebys nakrecil poradnik o przesunieciach bitowych heh, ale juz nie trzeba 3 razy przezczytalem ten rozdzial i wkoncu zajarzylem o co chodzi. A po ostatnich poradnkach to juz wogole cyfry widze jako jedynki i zera he he he.



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 24 mar 2014, o 13:20 
Offline
Moderator
Avatar użytkownika

Dołączył(a): 03 paź 2011
Posty: 27460
Lokalizacja: Szczecin
Pomógł: 1045

cyrixus --> ja ciebie bardzo dobrze rozumiem i masz rację że nie ma to jak własne kombinacje - o TO chodzi ;)

ale dlatego podałem ci na końcu przykład jak to może być z tą konfiguracją rejestru i skąd u mnie w przykładach zwykle jest

|=

zamiast

=

Oczywiście w tak prostym przykładzie jak do migania diody w tym temacie jest to nadmiarowe i tak jak mówisz wystarczyłoby samo =

ale mi chodzi o wyrobienie pewnych prawidłowych przyzwyczajeń i zrozumienia w czym rzecz ....

bo np ktoś powie że ta nadmiarowość to marnowanie miejsca we Flash .... ale to jest wg mnie nietrafiony kontrargument ... ponieważ jeśli na końcu projektu okazuje się że już walczymy o każdy BAJT we flash bo się kończy to wtedy łatwo usunąć z tych niektórych miejsc w kodzie

|=

tzn zamienić na

=

w celu takiej ręcznej własnej optymalizacji. Rzadko do tego dochodzi jednak aby walczyć o ostatni bajt - a za to - szukanie błędów przez to że czasem nie zastosujemy |= to wiele straconych godzin na poszukiwanie błędu.

_________________
zapraszam na blog: http://www.mirekk36.blogspot.com (mój nick Skype: mirekk36 ) [ obejrzyj Kurs EAGLE ] [ mój kanał YT TV www.youtube.com/mirekk36 ]



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 24 mar 2014, o 14:08 
Offline
Użytkownik

Dołączył(a): 24 mar 2014
Posty: 46
Pomógł: 0

żałuję tylko że zamówiłem Pana Usbasp bez książki, teraz będę musiał płacić drugi raz za wysyłkę ;x, no cóż mądry Polak po szkodzie;)

gdzie w nocie katalogowej ATtiny2313/V -20pu jest napisane jaki maksymalny prąd można pobrać z wyjsc/pinow ?



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 24 mar 2014, o 14:21 
Offline
Użytkownik
Avatar użytkownika

Dołączył(a): 10 sty 2014
Posty: 448
Lokalizacja: DKL
Pomógł: 53

@ifrook, 40mA na pinach I/O. Strona 177, tego pdf-a http://www.atmel.com/images/doc2543.pdf

_________________
Migracja z punktu B do punktu C
Pozdrawiam



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 24 mar 2014, o 23:56 
Offline
Użytkownik
Avatar użytkownika

Dołączył(a): 31 mar 2012
Posty: 177
Pomógł: 9

swoją drogą to ten program wpada do pustej pętli, więc nie ma szans, żeby cokolwiek mrugało jeśli dobrze myślę



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
Wyświetl posty nie starsze niż:  Sortuj wg  
Utwórz nowy wątek Odpowiedz w wątku  [ Posty: 17 ] 

Strefa czasowa: UTC + 1


Kto przegląda forum

Użytkownicy przeglądający ten dział: Brak zidentyfikowanych użytkowników i 10 gości


Nie możesz rozpoczynać nowych wątków
Nie możesz odpowiadać w wątkach
Nie możesz edytować swoich postów
Nie możesz usuwać swoich postów
Nie możesz dodawać załączników

Szukaj:
Skocz do:  
Sitemap
Technologię dostarcza phpBB® Forum Software © phpBB Group phpBB3.PL
phpBB SEO