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

KURS HOME ASSISTANT

Chcesz zautomatyzować swój dom bez skomplikowanego kodowania?
Zastanawiasz się nad wyborem sprzętu, oprogramowania i aplikacji?
Od czego zacząć przygodę z HA w 2025? Co będzie najlepsze na start?

Nasz kurs Home Assistant nauczy Cię krok po kroku, jak łatwo zautomatyzować swój dom i oszczędzić na rachunkach za prąd i ogrzewanie. Bez chmur, bez zbędnych abonamentów. Twoja przygoda z Home Assistant zaczyna się tutaj!

↓↓↓

    Szanujemy Twoją prywatność. Możesz wypisać się w dowolnym momencie.




    Teraz jest 17 maja 2025, o 03:01


    Strefa czasowa: UTC + 1





    Utwórz nowy wątek Odpowiedz w wątku  [ Posty: 26 ] 
    Autor Wiadomość
    PostNapisane: 9 maja 2013, o 15:53 
    Offline
    Nowy

    Dołączył(a): 09 maja 2013
    Posty: 14
    Pomógł: 0

    Witam wszystkich użytkowników tego forum :)

    Mam taki mały problem, z którym jednak nie mogę sobie poradzić.
    Po skompilowaniu programu wyskakują mi trzy błędy, a mianowicie:

    ../main.c:143: error: 'subzero' undeclared (first use in this function)
    ../main.c:144: error: 'cel' undeclared (first use in this function)
    ../main.c:146: error: 'cel_fract_bits' undeclared (first use in this function)

    Jest ich w sumie 6, ale dotyczą tych samych zmiennych, wiec nie będę ich powtarzał.

    Próbowałem już z externem i też nie daje rady, a jak sprawdzałem te biblioteki z 1Wire to rzeczywiście nie zauważyłem żadnych deklaracji tych zmiennych. Oczywiście są operacje na nich, ale ich deklaracji tam żadnych nie widziałem.

    Oto ten program:

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


    Biblioteki z płytki dołączanej do niebieskiej książki. Zmieniałem tylko definicje preprocesora na potrzeby projektu.

    Aha, no i jeszcze dodam, że ściągałem niedawno nowego Eclipsa 4.2.2 Classic z pluginem AVR, jeśli to coś może zmienić.

    Prosiłbym o pomoc ;-)

    Aa, no i program na Atmege8, ale to juz jak wcześniej pisałem, dostosowałem wszystko w kodzie i w definicja preprocka. Mam jeszcze dodatkowe 2 pytania. Czy takie zażądanie od uC pomiaru od razu po pomiarze jest dopuszczalne? Bo cośtam czytałem w rozdziale o napięciu różnicowym, że trzeba odczekać 250uF? I Jeszcze pytanie do rejestru. W programie z książki jest ADCSR, a w notach Atmegi8 jak i 32 rejestr ten się nazywa ADCSRA i ADCSRB. To jakieś malutkie uchybienie, czy tak, też mozna?



    Góra
     Zobacz profil  
    cytowanie selektywne  Cytuj  
    PostNapisane: 9 maja 2013, o 16:06 
    Offline
    Moderator
    Avatar użytkownika

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

    ale z jakim externem ? ;) no coś ty - nie masz ich DEFINICJI w kodzie, kompilator ci to krzyczy właśnie że nie ma ich DEFINICJI - a ty pytasz o co chodzi ? ;)

    chodzi o definicję

    no bo jak możesz korzystać z tych zmiennych w kodzie skoro nie zdefiniowałeś ich przed main jako globalnych albo w main jako lokalnych - no pomyśl ;)

    _________________
    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: 9 maja 2013, o 16:12 
    Offline
    Nowy

    Dołączył(a): 09 maja 2013
    Posty: 14
    Pomógł: 0

    A no ok, myślałem, że w jakiejś dołączonej bibliotece z 1Wire maja być zdefiniowane i użyłem deklaracji z extern, zanim jeszcze do tych bibliotek zajrzałem, a nie chciałem ich definiować jeszcze raz gdyby tam były. Dzięki :)

    Jeszcze czekam jak ktoś by był tak miły i odpowiedział na 2 pozostałe pytania dopisane na końcu pierwszego postu :)

    Ok teraz już wszystko ok, kilka ostrzeżeń było, ale dodałem kilka gwiazdeczek i było ok, ale teraz takie ostrzeżenie:

    ../main.c:91: warning: passing argument 2 of 'DS18X20_read_meas_single' from incompatible pointer type
    ../main.c:91: warning: passing argument 3 of 'DS18X20_read_meas_single' from incompatible pointer type
    ../main.c:91: warning: passing argument 4 of 'DS18X20_read_meas_single' from incompatible pointer type

    Że jakis niezgodny typ wskaźnika?



    Góra
     Zobacz profil  
    cytowanie selektywne  Cytuj  
    PostNapisane: 9 maja 2013, o 16:27 
    Offline
    Moderator
    Avatar użytkownika

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

    ADCSR to jest w ATtiny26 a w ATmegach jest ADCSRA ... to nie żadne uchybienie bo zarówno w książce piszę o tym że pomiar różnicowy robiłem na ATtiny26 i nawet na DVD jest z nim przykład

    ------------------------ [ Dodano po: kilkunastu sekundach ]

    adrspo95 napisał(a):
    Czy takie zażądanie od uC pomiaru od razu po pomiarze jest dopuszczalne? Bo cośtam czytałem w rozdziale o napięciu różnicowym, że trzeba odczekać 250uF?


    no ale z tym pytaniem to sorki - NIC nie rozumiem a szczegóknie z tym 250uF ?

    ------------------------ [ Dodano po: 1 minucie ]

    Cytuj:
    Ok teraz już wszystko ok, kilka ostrzeżeń było, ale dodałem kilka gwiazdeczek i było ok, ale teraz takie ostrzeżenie:

    ../main.c:91: warning: passing argument 2 of 'DS18X20_read_meas_single' from incompatible pointer type
    ../main.c:91: warning: passing argument 3 of 'DS18X20_read_meas_single' from incompatible pointer type
    ../main.c:91: warning: passing argument 4 of 'DS18X20_read_meas_single' from incompatible pointer type

    Że jakis niezgodny typ wskaźnika?


    masz przykłady na DVD - zajrzyj proszę .... bo tak będziesz co chwilę - i zobacz jak się przekazuje te zmienne do funkcji - zresztą w książce też masz - a ty piszesz inaczej i dziwisz się że jest źle :(

    _________________
    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: 9 maja 2013, o 16:52 
    Offline
    Nowy

    Dołączył(a): 09 maja 2013
    Posty: 14
    Pomógł: 0

    A tak, nie dopatrzyłem z tymi ATtinami, wybacz. No racja.. Pisałem post na szybko i trochę gaf porobiłem :/
    Chodziło mi o to czy od razu po końcu pierwszego pomiaru, przez wbudowany ADC można zacząć drugi, czy między pomiarami na wbudowanych ADC trzeba odczekiwać ileś czasu na przełączenie multipleksera. Miało być 250us.

    Zajrze może najpierw co tam na tej płycie ciekawego jest oprócz projektów, bo szczerze mówiąc to jeszcze zaznajamiałem się z nią zbytnio i może potem zacznę zadawać pytania :D Sorki za te niedopatrzenia.



    Góra
     Zobacz profil  
    cytowanie selektywne  Cytuj  
    PostNapisane: 9 maja 2013, o 17:24 
    Offline
    Moderator
    Avatar użytkownika

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

    adrspo95 napisał(a):
    Chodziło mi o to czy od razu po końcu pierwszego pomiaru, przez wbudowany ADC można zacząć drugi, czy między pomiarami na wbudowanych ADC trzeba odczekiwać ileś czasu na przełączenie multipleksera. Miało być 250us.


    A wiesz do czego jest badanie flagi pomiaru albo flagi przerwania po zleceniu pomiaru ? no właśnie po to żeby poczekać aż się skończy poprzedni - więc o jakim ty dodatkowym czasie piszesz ?

    ale spokojnie niedługo jako kolejny poradnik VIDEO do moich książek będzie już troszkę czasu zapowiadany i także mocno już spóźniony - poradnik na temat właśnie ADC ;) więc sporo ci się wyjaśni - to także ;)

    ------------------------ [ Dodano po: 2 minutach ]

    Cytuj:
    Zajrze może najpierw co tam na tej płycie ciekawego jest oprócz projektów


    Nie wiem dlaczego sporo czytelników nie zagląda na DVD

    a tam WSZYSTKIE kody źródłowe do ćwiczeń pięknie komentowane - no mnóstwo pracy w to włożyłem eeeeh

    nie wspomnę o lekcjach VIDEO na DVD ...

    na prawdę polecam się z tym zapoznać

    _________________
    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: 3 cze 2013, o 14:30 
    Offline
    Nowy

    Dołączył(a): 09 maja 2013
    Posty: 14
    Pomógł: 0

    Ok, napiszę tu żeby nie zakładać nowego tematu. Odstawiłem to na jakis czas dzisiaj do tego wróciłem, zmieniłem trochę kod i po wgraniu programu do Atmegi8 nic mi się nie wyświetla na lcdku. Wiem, że na pewno działa i na pewno wszystko jest dobrze podłączone, 2 razy sprawdzałem nawet multimetrem. Dziwne, bo wcześniej się wszystko wyświetlało, a dzisiaj nawet z tym poprzednim programem nic nie było widać na LCD. LCD działa, bo wgrywałem do atmegi prosty kod, który wypisał jakiś ciąg znaków i wszystko było ok.

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


    Nie wiem co jest nie tak, powinno się cokolwiek wyświetlić, a nie ma nic.



    Góra
     Zobacz profil  
    cytowanie selektywne  Cytuj  
    PostNapisane: 3 cze 2013, o 15:40 
    Offline
    Moderator
    Avatar użytkownika

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

    a jak masz podpięty pin RW ? do procka czy do GND ? a jak do tego skonfigurowałeś LCD w pliku *.h ? bo jeśli nie skonfigurowałeś to normalne zachowanie

    _________________
    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: 3 cze 2013, o 16:16 
    Offline
    Nowy

    Dołączył(a): 09 maja 2013
    Posty: 14
    Pomógł: 0

    RW mam podpięty do procka, LCD w pliku *.h też skonfigurowałem. Utworzyłem nowy projekt i napsałem krótki program, żeby coś wypisywał na LCDku i wszystko było ok, a cały folder LCD skopiowałem i nie zmieniałem nic w podłączeniu, więc z LCDkiem i jego konfiguracją wszystko jest ok.



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

    Dołączył(a): 27 mar 2012
    Posty: 511
    Lokalizacja: Sląsk
    Pomógł: 14

    A spróbuj przed główną pętlą while coś wyświetlić na lcd. Działa czy nie?

    _________________
    Programowanie to styl życia :D



    Góra
     Zobacz profil  
    cytowanie selektywne  Cytuj  
    PostNapisane: 3 cze 2013, o 16:46 
    Offline
    Nowy

    Dołączył(a): 09 maja 2013
    Posty: 14
    Pomógł: 0

    działa? :D

    Edit:
    Ale tylko to przed pętlą. Ktoś wie czemu?



    Góra
     Zobacz profil  
    cytowanie selektywne  Cytuj  
    PostNapisane: 3 cze 2013, o 17:04 
    Offline
    Użytkownik
    Avatar użytkownika

    Dołączył(a): 19 lut 2013
    Posty: 223
    Zbananowany użytkownik

    Pomógł: 21

    Zakładam, że sprawdziłeś, czy to przerwanie działa.

    Jeżeli ADC uruchomiłeś w trybie Free Running to inaczej odczytuje się z niego wartość. Chwilowo usuń linię 127:
    while(ADCSRA & (1<<ADSC));
    i zobacz czy nie ożyło.

    _________________
    Nie pisz komentarzy - dobry kod komentuje się sam.



    Góra
     Zobacz profil  
    cytowanie selektywne  Cytuj  
    PostNapisane: 3 cze 2013, o 17:08 
    Offline
    Nowy

    Dołączył(a): 09 maja 2013
    Posty: 14
    Pomógł: 0

    Ożyło, tylko, że teraz pomiary mi lataja jak szalone i nie da sie nic odczytać.



    Góra
     Zobacz profil  
    cytowanie selektywne  Cytuj  
    PostNapisane: 3 cze 2013, o 18:00 
    Offline
    Użytkownik
    Avatar użytkownika

    Dołączył(a): 19 lut 2013
    Posty: 223
    Zbananowany użytkownik

    Pomógł: 21

    To wyrzuć linijkę 42:
    ADCSRA |= (1<<ADFR);
    Przywróć 127:
    while(ADCSRA & (1<<ADSC));
    I jeżeli nie masz specyficznych potrzeb (uśrednianie wyników w tle, dodatkowy timer) to nie kombinuj z Free Running Mode ;)

    PS. Do linii 121 trzeba (chyba) dopisać dodatkowo jeszcze po linii 127:
    ADMUX &= ~kanal;

    _________________
    Nie pisz komentarzy - dobry kod komentuje się sam.



    Góra
     Zobacz profil  
    cytowanie selektywne  Cytuj  
    PostNapisane: 3 cze 2013, o 18:14 
    Offline
    Nowy

    Dołączył(a): 09 maja 2013
    Posty: 14
    Pomógł: 0

    No właśnie tak zrobiłem i nadal skacze :/ ale z tym zerowaniem wcześniej ustawionego kanału to racja, bo od drugiego pomiaru ADC mierzyły by tylko kanał pierwszy. Umknęło mi to, dzięki. Ciekawe co jeszcze mi umknęło, że to praktycznie nie działa. Masz ode mnie "pomógł" :)



    Góra
     Zobacz profil  
    cytowanie selektywne  Cytuj  
    PostNapisane: 3 cze 2013, o 18:22 
    Offline
    Użytkownik
    Avatar użytkownika

    Dołączył(a): 19 lut 2013
    Posty: 223
    Zbananowany użytkownik

    Pomógł: 21

    Przede wszystkim wyświetl sobie wartości jakie zwraca ADC, a potem porównaj czy zgadza się z przekształceniem. No i jakbyś jakiś schemat dał albo opis to ciutek łatwiej by było ;)

    _________________
    Nie pisz komentarzy - dobry kod komentuje się sam.



    Góra
     Zobacz profil  
    cytowanie selektywne  Cytuj  
    PostNapisane: 3 cze 2013, o 18:44 
    Offline
    Nowy

    Dołączył(a): 09 maja 2013
    Posty: 14
    Pomógł: 0

    Właśnie z wartościami zwracanymi przez ADC jest trochę dziwnie, działa to dobrze, ale tylko jak kanały są podpięte do gnd- to pokazuje 0 :) jeśli są podpięte pod jakiekolwiek napięcie wieksze niż gnd to zawsze pokazuje stałą wartość, niezależnie jakie by to było napaięcie (do VCC oczywiście). Jak kanały są w powietrzu to skacze. Teraz zrobiłem tak, że pierwszy kanał mierzy rzeczywiśte napięcie bez żadnych dzielników itp 0-5V, a drugi tylko samą wartość ADC. Pierwszy wskazuje 2,55V a drugi 255, niezależnie pod jakie napięcie się je podepnie. Schematu niestety nie zrobiłem do tego układu, zrobię go jutro. A to ten kod "obliczeniowy" kanałów ADC.

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

    Wynik z ADC * 25, bo 2,56/1024 daje 0,0025, mnoże do całkowitych, a w wyniku jest to uwzględnione i podzielone przez 10000



    Góra
     Zobacz profil  
    cytowanie selektywne  Cytuj  
    PostNapisane: 3 cze 2013, o 18:51 
    Offline
    Użytkownik
    Avatar użytkownika

    Dołączył(a): 19 lut 2013
    Posty: 223
    Zbananowany użytkownik

    Pomógł: 21

    Chwila... ustawiłeś sobie napięcie odniesienia na 2.5V i próbujesz mierzyć napięcie od niego większe ?
    Jak na ADC podasz napięcie większe od ustawionego napięcia odniesienia to zawsze zwróci maksymalną wartość (1023 albo 255 - zależy ile bitów czytasz). Daj na ten pin potencjometr (dzielnik) i sprawdź tego ADC dla przedziału 0-2.5V.

    _________________
    Nie pisz komentarzy - dobry kod komentuje się sam.



    Góra
     Zobacz profil  
    cytowanie selektywne  Cytuj  
    PostNapisane: 3 cze 2013, o 19:27 
    Offline
    Nowy

    Dołączył(a): 09 maja 2013
    Posty: 14
    Pomógł: 0

    No tak, racja. Zrobiłem tak i napięcie w zakresie 0-2.55V a odczyt 0-255, czyli dobrze. Ale jak mnoże te napięcie *13 to pokazują się jakieś dziwne wyniki. Zdefiniowałem zmienna wynik na uint32_t bo 255 * 25 * 13 by nie pomieścił. A co zrobić, żeby odczytać 10 bitową rozdzielczość? Myślę, że ma to związek ze zwracanym rejestrem ADCW, ale nie mogę go znaleść w nocie katalogowej. Nie ma go tam chyba.

    ------------------------ [ Dodano po: 15 minutach ]

    Ok, spojrzałem głebiej do noty katalogowej i pisze tam coś takiego.

    When an ADC conversion is complete, the result is found in these two registers.
    When ADCL is read, the ADC Data Register is not updated until ADCH is read. Consequently, if
    the result is left adjusted and no more than 8-bit precision is required, it is sufficient to read
    ADCH. Otherwise, ADCL must be read first, then ADCH.
    The ADLAR bit in ADMUX, and the MUXn bits in ADMUX affect the way the result is read from
    the registers. If ADLAR is set, the result is left adjusted. If ADLAR is cleared (default), the result is right adjusted.


    O ile dobrze zrozumiałem to, żeby odczytać 10cio bitową rozdzielczość to (jeśli ADLAR w ADMUX nie jest ustawiony) trzeba najpierw odczytać rejstr ADCL, a później ADCH i bity odczytane z ADCH są starsze.
    Trzeba jes przesunąć o cały bajt w prawo? Czyli takie coś w zwroceniu pomiaru

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


    Dobrze zrozumiałem? Jeśli nie to proszę o wytłumaczenie, bo mój angielski nie jest tak dobry :/

    ------------------------ [ Dodano po: 19 minutach ]

    Ech, chyba jednak źle, bo zrobiłem tak i nadal mi czyta z 8 bitową rozdzielczością tylko.

    ------------------------ [ Dodano po: 39 minutach ]

    Ok, wyniki mam już w porządku, trzeba było pomiar zapisać do osobnej zmiennej i na tej zmiennej go obliczać, a nie że w jednej zmiennej pomiar i obliczenia. Ale teraz mam taki problem, że pokazywane napiecie jest takie samo na jednym jak i na drugim kanale mimo, że w rzeczywistości tak nie jest :(



    Góra
     Zobacz profil  
    cytowanie selektywne  Cytuj  
    PostNapisane: 3 cze 2013, o 20:53 
    Offline
    Moderator
    Avatar użytkownika

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

    adrspo95 --> czy przypadkiem nie powielasz tego błędu (chochlika z książki?)

    post13633.html#p13633

    _________________
    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: 3 cze 2013, o 20:54 
    Offline
    Użytkownik
    Avatar użytkownika

    Dołączył(a): 19 lut 2013
    Posty: 223
    Zbananowany użytkownik

    Pomógł: 21

    "Voltage reference and input channel selections will not go into effect until ADEN is set."
    Czyli ustawiasz ADEN na 0, zmieniasz kanał, ustawiasz z powrotem na 1 i dopiero potem dajesz ADSC na 1. Po pomiarze nadal musisz usunąć ustawiony kanał.

    ------------------------ [ Dodano po: 1 minucie ]

    Mirek: pisałem o dodaniu
    ADMUX &= ~kanal;
    a to też rozwiązuje sprawę ;)

    _________________
    Nie pisz komentarzy - dobry kod komentuje się sam.



    Góra
     Zobacz profil  
    cytowanie selektywne  Cytuj  
    PostNapisane: 3 cze 2013, o 21:34 
    Offline
    Nowy

    Dołączył(a): 09 maja 2013
    Posty: 14
    Pomógł: 0

    Zrobiłem tak jak npisałeś. Kanał nadal usuwam i dalej to samo.



    Góra
     Zobacz profil  
    cytowanie selektywne  Cytuj  
    PostNapisane: 4 cze 2013, o 18:45 
    Offline
    Użytkownik
    Avatar użytkownika

    Dołączył(a): 19 lut 2013
    Posty: 223
    Zbananowany użytkownik

    Pomógł: 21

    Składnia: [ Pobierz ] [ Ukryj ] [ Zaznacz wszystko ]
    język c
    Musisz się zalogować, aby zobaczyć kod źródłowy. Tylko zalogowani użytkownicy mogą widzieć kod.
    U mnie taki kod działa jak należy... po wpięciu między PD0 - PD1 dzielnika wartości ADC też są ok... i są niezależne dla obydwu kanałów (PC0 pod dzielnik, a PC1 pod PD0/PD1 i na odwrót)

    _________________
    Nie pisz komentarzy - dobry kod komentuje się sam.



    Góra
     Zobacz profil  
    cytowanie selektywne  Cytuj  
    PostNapisane: 4 cze 2013, o 21:13 
    Offline
    Nowy

    Dołączył(a): 09 maja 2013
    Posty: 14
    Pomógł: 0

    Aż dziwo, bo u mnie identyczny kod nie działa,zaraz zmontuje układ jeszcze raz i to przetestuje. Na jakiej częstotliwości taktowania to robiłeś?



    Góra
     Zobacz profil  
    cytowanie selektywne  Cytuj  
    PostNapisane: 4 cze 2013, o 21:25 
    Offline
    Moderator
    Avatar użytkownika

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

    szkoda że obydwaj nie czytacie tego co piszę, więc dalej będziecie się kręcić w kółko jak bączki

    //ustawienie wybranego kanalu ADC w rejestrze ADMUX
    ADMUX |= kanal;

    to na pewno nie będzie działać - nie ma prawa działać ....

    no ale skoro wolicie dalej się męczyć to proszę ;)

    _________________
    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: 4 cze 2013, o 21:34 
    Offline
    Nowy

    Dołączył(a): 09 maja 2013
    Posty: 14
    Pomógł: 0

    Tak, ale my potem zerujemy pierwsze 3 bity ADMUX'a w osobnej instrukcji.

    ------------------------ [ Dodano po: 27 minutach ]

    O już chyba wiem co może być nie tak. Używam atmegi8A, w zwykłej ósemce jest tak, że AVCC jest zwarte z VCC, z atmegi8A wyeliminowano ten "problem". W nocie pisze żeby podłączyć AVCC przez dławik do VCC, jutro kupię dławik i sprawdzę.

    ------------------------ [ Dodano po: 37 minutach ]

    A tymczasem zmontowałem układ na nowo i nadal nic, zobaczymy jutro.



    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: 26 ] 

    Strefa czasowa: UTC + 1


    Kto przegląda forum

    Użytkownicy przeglądający ten dział: Brak zidentyfikowanych użytkowników i 11 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:  
    cron
    Sitemap
    Technologię dostarcza phpBB® Forum Software © phpBB Group phpBB3.PL
    phpBB SEO