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



Teraz jest 17 cze 2026, o 20:02


Strefa czasowa: UTC + 1





Utwórz nowy wątek Odpowiedz w wątku  [ Posty: 39 ]  Przejdź na stronę 1, 2  Następna strona
Autor Wiadomość
PostNapisane: 30 maja 2014, o 14:37 
Offline
Użytkownik

Dołączył(a): 07 mar 2014
Posty: 39
Pomógł: 0

Witam!

Potrzebuje napisać program który migałby diodą do AVR'a ATtiny13A w obudowie DIP8.

Moje podłączenia:
PB2-dioda-masa
PB1-przycisk-masa

Mój prosty kod:
Cytuj:
#define F_CPU 1000000UL // BABOL - nigdy tego nie piszemy w kodzie - mirekk36

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


Moim zdaniem kod powinien działać, lecz w praktyce nie chce. Możliwe, że popełniłem jakiś banalny błąd.
Może ktoś z Was go wychwyci. Pozdrawiam i proszę o pomoc.



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 30 maja 2014, o 14:49 
Offline
Nowy

Dołączył(a): 08 maja 2014
Posty: 1
Pomógł: 0

Po co tam dwa warunki wystarczy jeden
if ( !(PINB & (1<<PB1)) ) // Przycisk nr 1
_delay_ms(240) to też nie potrzebnie

Też nie opisałeś co nie działa.



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 30 maja 2014, o 14:55 
Offline
Użytkownik

Dołączył(a): 07 mar 2014
Posty: 39
Pomógł: 0

Dwa IF'y są po to, aby uniknąć efektu związanego z drganiem styków. Dioda nie chce mrugać.



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 30 maja 2014, o 15:04 
Offline
Użytkownik
Avatar użytkownika

Dołączył(a): 22 paź 2013
Posty: 1988
Lokalizacja: Lipsko
Pomógł: 125

Może dioda odwrotnie podłączona... Normalnie świeci ? Jest z rezystorem?

_________________
http://www.sylwekkuna.com



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 30 maja 2014, o 15:12 
Offline
Użytkownik

Dołączył(a): 07 mar 2014
Posty: 39
Pomógł: 0

Od strony technicznej jest ok. GND diody do GND układu, plus do rezystora i na procek.



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 30 maja 2014, o 15:17 
Offline
Użytkownik
Avatar użytkownika

Dołączył(a): 22 paź 2013
Posty: 1988
Lokalizacja: Lipsko
Pomógł: 125

I jeszcze jedno co z fusebitami - dobrze ustawione? Aha, Attiny13 ma zegar 1,2 MHz a nie 1MHz tyle, że w tym wypadku czasy migania by się tylko nie zgadzały.
A w ogóle najprostszy program z zapalaniem diody działa?

_________________
http://www.sylwekkuna.com



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 30 maja 2014, o 15:21 
Offline
Użytkownik
Avatar użytkownika

Dołączył(a): 27 maja 2013
Posty: 562
Lokalizacja: Bydgoszcz
Pomógł: 23

Jak mogę coś doradzić to proponuję Ci się zainteresować blogiem Mirka

http://mirekk36.blogspot.com/


jak się zagłębisz to trafisz na kody na tej stronie gdzie na pewno opanujesz włączanie diody Led klawiszem:

http://mirekk36.blogspot.com/2012/10/obsuga-klawiszy-drgania-stykow-cd2.html


i tu w zasadzie masz całe rozwiązanie dlaczego Ci nie chce działać, moim zdaniem jest to prostsze wskazać Ci to niż omawiać dlaczego kod Ci nie działa prawidłowo.



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 30 maja 2014, o 15:28 
Offline
Użytkownik

Dołączył(a): 07 mar 2014
Posty: 39
Pomógł: 0

Kod od Pana Mirka również nie działa. Musiałem coś spieprzyć, podpowiecie co?

Cytuj:
/*
* main.c
*
* Created on: 2012-10-05
* Autor: Mirosław Kardaś -------> TO NIE JEST MÓJ KOD - mirekk36
*/
#define F_CPU 1000000UL -----> nigdy bym tego nie wpisał w kodzie źródłowym

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



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 30 maja 2014, o 15:39 
Offline
Użytkownik
Avatar użytkownika

Dołączył(a): 28 sty 2013
Posty: 426
Pomógł: 36

Spróbuj tak:

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


Nie używaj F_CPU !!!



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 30 maja 2014, o 15:41 
Offline
Użytkownik
Avatar użytkownika

Dołączył(a): 04 lut 2012
Posty: 778
Pomógł: 9

Jak ci ktokolwiek ma podpowiedzieć co robisz źle skoro tylko widzimy kod ?
Pokarz jak to wszystko podłączasz oraz częstotliwość taktowania uC ustawia się w properties projektu, a nie F_CPU.



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 30 maja 2014, o 15:49 
Offline
Użytkownik
Avatar użytkownika

Dołączył(a): 27 maja 2013
Posty: 562
Lokalizacja: Bydgoszcz
Pomógł: 23

Dlatego zaproponowałem CI zainteresować się całym blogiem Mirka, tam jest mnóstwo filmów i tekstów wprowadzających. Gwarantuje Ci że jak obejrzysz i przeczytasz tam wszystko co się da to układ będzie Ci działał tak jak chcesz.

Póki co to własnie jak to podłączyłeś.

Spróbuj zamigać chociaż samym 1 LED bez klawiszy na razie.



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 30 maja 2014, o 16:12 
Offline
Użytkownik

Dołączył(a): 07 mar 2014
Posty: 39
Pomógł: 0

#warning "F_CPU not defined for <util/delay.h>" - używam AVR Studio
Wszedłem do Project->Properties->Toolchain->Symbols.
W Define Symbols (-D) ustawiłem: F_CPU=1000000 skompilowałem i nie ruszyło

Układ wygląda tak:
Plus wystabilizowany regulatorem 5v podłączam do pinu VCC w ATtiny13A
Minu podłączam do: pinu GND w ATtiny13A, krótszej nogi diody, jednej nogi przycisku.
Do portu PB1 ATtiny13A podłączam drugą nogę przycisku, a do portu PB2 rezystor i dłuższą noge diody.


//edit

Myślałem że płytka jest walnięta, gdzieś robi zwarcie czy coś, więc zlutowałem na szybko osobny układ.
Zdjęcie:
Obrazek

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


To musi działać, a nie chce. Wie ktoś co robię źle?



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 30 maja 2014, o 18:50 
Offline
Użytkownik

Dołączył(a): 04 paź 2011
Posty: 60
Lokalizacja: Bieszczady/Krosno
Pomógł: 4

Witam
Jeżeli attiny jest prawidłowo wpinany do podstawki (wycięcie do wycięcia) to pomylone są bieguny plus z minusem.
augustyn1



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 30 maja 2014, o 19:09 
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

Proszę się zapoznać z zasadami umieszczania obrazków topic44.html

Dlaczego uparcie umieszczasz programy dla PC a nie Attiny??

_________________
http://www.jaglarz.info



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 30 maja 2014, o 19:26 
Offline
Użytkownik
Avatar użytkownika

Dołączył(a): 10 mar 2013
Posty: 739
Lokalizacja: Poznań
Pomógł: 84

Jeszcze jedna uwaga
nie ma to związku z nieświeceniem diody ale
funkcja _delay_ms(020) to nie 0,24 sekundy
tylko 0,020 sekundy ,
czyli nie 240 milisekund a 20 milisekund.

No chyba że się mylę to mnie poprawcie :)



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 30 maja 2014, o 20:06 
Offline
Użytkownik

Dołączył(a): 22 sty 2014
Posty: 1806
Zbananowany użytkownik

Pomógł: 168

Zaba napisał(a):
eszcze jedna uwaga
nie ma to związku z nieświeceniem diody ale
funkcja _delay_ms(020) to nie 0,24 sekundy
tylko 0,020 sekundy ,
czyli nie 240 milisekund a 20 milisekund.


dobrze mówisz:)



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 30 maja 2014, o 20:11 
Offline
Użytkownik

Dołączył(a): 20 wrz 2013
Posty: 647
Zbananowany użytkownik

Pomógł: 101

Nefarious19 napisał(a):
Zaba napisał(a):
...
funkcja _delay_ms(020) to nie 0,24 sekundy
tylko 0,020 sekundy ,
czyli nie 240 milisekund a 20 milisekund.


dobrze mówisz:)


Otóż nie...ale blisko.
To jest 16ms czyli 0,016s :o

_________________
+++++[>++++<-]>[>++++++<-]>.---------.+++.



Ostatnio edytowano 30 maja 2014, o 20:15 przez xor, łącznie edytowano 1 raz

Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 30 maja 2014, o 20:15 
Offline
Użytkownik

Dołączył(a): 22 sty 2014
Posty: 1806
Zbananowany użytkownik

Pomógł: 168

xor napisał(a):
Otóż nie.
To jest 16ms czyli 0,016s :-O


od kiedy 20 = 16?



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 30 maja 2014, o 20:17 
Offline
Użytkownik

Dołączył(a): 20 wrz 2013
Posty: 647
Zbananowany użytkownik

Pomógł: 101

Nie "20" ale "020". Od kiedy język C ujrzał światło dzienne ;-)

_________________
+++++[>++++<-]>[>++++++<-]>.---------.+++.



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 30 maja 2014, o 20:21 
Offline
Użytkownik

Dołączył(a): 22 sty 2014
Posty: 1806
Zbananowany użytkownik

Pomógł: 168

xor napisał(a):
Nie "20" ale "020". Od kiedy język C ujrzał światło dzienne


mógłbyś mi wytłumaczyć dlaczego tak jest? :)



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 30 maja 2014, o 21:11 
Offline
Użytkownik
Avatar użytkownika

Dołączył(a): 22 paź 2013
Posty: 1988
Lokalizacja: Lipsko
Pomógł: 125

Zasilanie faktycznie odwrotnie. Jeśli tiny jeszcze żyje (mnie też się zdarzyło na krótki czas odwrotnie podłączyć i było ok) to po poprawnym podłączeniu program powinien zadziałać.
I popraw te 1000000Hz na 1200000Hz!

@Nefarious19 - pewnie chodzi o to, że "0" przed cyferką oznacza liczbę hex tylko ,że hex20 to jest właściwie dec32... osobiście zapisu takiego nie stosowałem (brakuje mi "x" czyli w sumie "0x" i nie wiem czy dobrze wytłumaczyłem ale tak to na logikę wygląda :) Podsumowując siedzi tam wg mnie 20ms, bo 020 to przecież to samo co 20, a dopiero 0x20 było by 32.

_________________
http://www.sylwekkuna.com



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 30 maja 2014, o 21:22 
Offline
Nowy

Dołączył(a): 11 sty 2013
Posty: 18
Pomógł: 1

Tak zerknąłem szybko na fotkę i nie widzę rezystora przy diodzie, nie wspominając o filtrowaniu zasilania.



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 30 maja 2014, o 21:27 
Offline
Użytkownik
Avatar użytkownika

Dołączył(a): 22 paź 2013
Posty: 1988
Lokalizacja: Lipsko
Pomógł: 125

Mówił, że rezystor ma... może zapomniał dodać na pająku albo jakiś smd tam siedzi i go nie widać... filtracja jest wskazana, ale tu akurat nie ma to większego znaczenia - procek jest odwrotnie podłączony. I jeśli zadziała, a rezystorka tam nie ma to zadziała - na bardzo krótko ;)

_________________
http://www.sylwekkuna.com



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 30 maja 2014, o 21:28 
Offline
Użytkownik
Avatar użytkownika

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

Stabilizator źle polutowany (zamienione wejście z wyjściem), prawidłowa rozpiska poniżej, brak kondensatorów blokujących 100n. To że Ci to nie działa to są niestety efekty braku schematu, od którego trzeba zacząć nawet przy tak mogłoby się wydawać błahych projektach.

Obrazek

_________________
Migracja z punktu B do punktu C
Pozdrawiam



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 30 maja 2014, o 22:49 
Offline
Użytkownik

Dołączył(a): 22 sty 2014
Posty: 1806
Zbananowany użytkownik

Pomógł: 168

SylwekK napisał(a):
@Nefarious19 - pewnie chodzi o to, że "0" przed cyferką oznacza liczbę hex tylko ,że hex20 to jest właściwie dec32... osobiście zapisu takiego nie stosowałem (brakuje mi "x" czyli w sumie "0x" i nie wiem czy dobrze wytłumaczyłem ale tak to na logikę wygląda Podsumowując siedzi tam wg mnie 20ms, bo 020 to przecież to samo co 20, a dopiero 0x20 było by 32.


tak też właśnie myślałem:) dzięki za rozwianie wątpliwości:)



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 30 maja 2014, o 23:27 
Offline
Moderator
Avatar użytkownika

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

Maniecki106 napisał(a):
Kod od Pana Mirka również nie działa.


Mtko jedyna :( .... to jest kod ode mnie ? zzzz tyyym brzydactwem ?

#define F_CPU 1000000UL

bleeeee, proszę mi więcej nie pisać - że ja coś takiego pisałem - i proszę mi na forum nie powielać tego

_________________
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: 30 maja 2014, o 23:34 
Offline
Użytkownik

Dołączył(a): 20 wrz 2013
Posty: 647
Zbananowany użytkownik

Pomógł: 101

Liczba z zerem na początku oznacza liczbę ósemkową. Przypuszczam, że mało kto o tym pamięta, nawet jeżeli o tym wie. Bo komu są potrzebne liczby ósemkowe? Chyba nikomu (za wyjątkiem kilku dziwaków: http://stackoverflow.com/questions/44569/octal-number-literals-when-why-ever ;-)).

_________________
+++++[>++++<-]>[>++++++<-]>.---------.+++.



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 31 maja 2014, o 10:53 
Offline
Nowy

Dołączył(a): 18 maja 2014
Posty: 9
Pomógł: 1

Kolego nie wiem czy sobie z tym poradziłeś i temat zakończyłeś, ale jak patrzę na pajączka to widzę, ( pomijając rezystorek i podstawkę o 180 st. odwróconą ) że dioda według tych połączeń podpięta jest pod PB4. Więc jak ma świecić. PB2 jest na 7 n. Zwracaj uwagę na wcięcia w podstawkach, to jest info jak liczyć nóżki. I jak wcześniej kolega wspomniał odwrotnie wstawiony LM. Program mysi działać, a miganie można zrobić w pętli np. for.
Składnia: [ Pobierz ] [ Ukryj ]
język c
Musisz się zalogować, aby zobaczyć kod źródłowy. Tylko zalogowani użytkownicy mogą widzieć kod.



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 3 cze 2014, o 16:23 
Offline
Użytkownik

Dołączył(a): 07 mar 2014
Posty: 39
Pomógł: 0

Racja, miałem źle podpięty regulator oraz procesor. Poprawiłem to ale dalej nie działa.

Mój pająk:
Obrazek

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


Nie wiem gdzie popełniam błąd. Może ktoś z Was widzi?

//Edit
Procesor jest ok bo normalnie się programuje, stabilizator ok bo na układzie jest prąd.
Chyba, że ktoś by mi skompilował ten kod do .hex i dopiero wgram. Może ja mam coś z kompilatorem pomieszane.



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 3 cze 2014, o 16:45 
Offline
Użytkownik

Dołączył(a): 22 lut 2014
Posty: 205
Lokalizacja: Poznań
Pomógł: 22

Sprawdź czy dioda nie jest uszkodzona:). I ile jest volt pomiędzy nogami 8 i 4.



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: 39 ]  Przejdź na stronę 1, 2  Następna strona

Strefa czasowa: UTC + 1


Kto przegląda forum

Użytkownicy przeglądający ten dział: Brak zidentyfikowanych użytkowników i 5 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