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 22 maja 2025, o 09:59


    Strefa czasowa: UTC + 1





    Utwórz nowy wątek Odpowiedz w wątku  [ Posty: 11 ] 
    Autor Wiadomość
    PostNapisane: 18 lis 2014, o 21:28 
    Offline
    Użytkownik
    Avatar użytkownika

    Dołączył(a): 03 sie 2013
    Posty: 87
    Pomógł: 0

    Witam wszystkich

    Od wczoraj działam na nowym ATB i mam jakiś dziwny problem:
    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.


    common.c
    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.


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


    PORTA 0-4 zaadresowane jako wejścia oraz podłączone do przycisków na ATB do KBD od 1-5 (PA0-1...PA4-5)
    Wg programu powyżej led na PA5 powinein zmieniać stan po wciśnięciu K3 ale niestety jest przesunięty w lewo na K2
    Przy próbie na K1 czyli PA0 zaczyna wariować tak jakby był zwarty do masy, sprawdziłem po odłączeniu zasilania i wyjęciu procka czy nie ma zwarć i wygląda że jest ok.
    Próbowałem to przenieść na PORTD - i to samo. Porty nie są używana w innych plikach programu a SSD działa na TWI.

    Możliwe że jest uszkodzony procek czy raczej to będzie coś w eclipse?

    Z góry dzięki za pomoc



    Ostatnio edytowano 18 lis 2014, o 21:56 przez mickeu, łącznie edytowano 1 raz

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

    Dołączył(a): 19 cze 2014
    Posty: 247
    Pomógł: 15

    Cytuj:
    DDRD &= ~((1<<PORTA0)|(1<<PORTA1)|(1<<PORTA2)|(1<<PORTA3)|(1<<PORTA4)); //wejscia

    Piszesz najpierw DDRD a potem PORTA, musi być albo A albo D.

    _________________
    http://elektropanel.pl



    Góra
     Zobacz profil  
    cytowanie selektywne  Cytuj  
    PostNapisane: 18 lis 2014, o 21:32 
    Offline
    Użytkownik
    Avatar użytkownika

    Dołączył(a): 03 sie 2013
    Posty: 87
    Pomógł: 0

    leonos2000 napisał(a):
    Cytuj:
    DDRD &= ~((1<<PORTA0)|(1<<PORTA1)|(1<<PORTA2)|(1<<PORTA3)|(1<<PORTA4)); //wejscia

    Piszesz najpierw DDRD a potem PORTA, musi być albo A albo D.


    To z ostatniej próby zamiany portu - poprawiłem i nadal to samo.
    Po za tym DDRx i tak jest inicjowane jako 0 w całym porcie na starcie o ile nie zadeklarowane inaczej wiec bez różnicy.



    Góra
     Zobacz profil  
    cytowanie selektywne  Cytuj  
    PostNapisane: 18 lis 2014, o 21:52 
    Offline
    Użytkownik
    Avatar użytkownika

    Dołączył(a): 03 sie 2013
    Posty: 87
    Pomógł: 0

    Antystatyczny napisał(a):
    Może się mylę, ale nie widzę nigdzie zmiennych przechowujących aktualny stan klawiszy.


    są w common.h



    Góra
     Zobacz profil  
    cytowanie selektywne  Cytuj  
    PostNapisane: 18 lis 2014, o 22:30 
    Offline
    Użytkownik
    Avatar użytkownika

    Dołączył(a): 03 sie 2013
    Posty: 87
    Pomógł: 0

    Antystatyczny napisał(a):
    Ok, teraz wkleiłeś więcej kodu i widać. Pamiętam, że miałem podobny problem i przeniesienie zmiennych zapamiętujących stan klawiszy do pliku main.c tuż przed funkcją main() natychmiast rozwiązało problem. Kiedyś o to nawet pytałem tu na forum. Widzę, że je masz w common.h, wystawione poza moduł, więc teoretycznie powinno być dobrze...

    ------------------------ [ Dodano po: 5 minutach ]

    Oczywiście wyjmowałeś mikrokontroler i sprawdzałeś multimetrem poprawność działania przycisków, brak zwarć pomiędzy nimi, obecność zasilania na AVCC itd... Choć z drugiej strony, jeśli to fabryczny moduł, to powinien działac poprawnie.


    Tak wzystko na liniach zostało rozpięte i "przedzwonione" brak zwarć czy też przerw a połączeniach.

    Co dziwniejsze normalna funkcja:

    if(!(PINA & (1<<PINA0))){
    led();
    }

    Działa bez problemu - pewnie coś w Superdebounce zawala sprawe.
    Powyłączałem nawet wszystkie inne moduły in includy i dalej to samo.



    Góra
     Zobacz profil  
    cytowanie selektywne  Cytuj  
    PostNapisane: 18 lis 2014, o 23:08 
    Offline
    Użytkownik
    Avatar użytkownika

    Dołączył(a): 03 sie 2013
    Posty: 87
    Pomógł: 0

    Antystatyczny napisał(a):
    No to jeśli sobie posprawdzałes prostym kodem, że sprzęt odzywa się poprawnie, to pozostaje wina kodu. Kombinowałeś już z tymi zmiennymi k1 i k2?

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

    Aha, sama funkcja superdebounce jest do bólu sprawna. Trzeba jedynie pamiętać, że dla każdego klawisza musi być oddzielna zmienna "trzymająca władzę" czyli aktualny stan.


    Tak, przeniosłem je też nad main, tak samo jak i superdebounce... wciąż to samo. zaczyna szleć po wejsciu w pętle while(1)



    Góra
     Zobacz profil  
    cytowanie selektywne  Cytuj  
    PostNapisane: 18 lis 2014, o 23:19 
    Offline
    Użytkownik
    Avatar użytkownika

    Dołączył(a): 17 sie 2013
    Posty: 3797
    Lokalizacja: Grudziądz
    Pomógł: 143

    mickeu napisał(a):

    void led(void){
    PORTA ^= (1<<PORTA5);
    PORTA |= (1<<PORTA7);
    _delay_ms(100);
    PORTA &= ~(1<<PORTA7);


    A co to ?

    Powinno być PORTA ^= (1<<PA5);

    itd

    Po za tym wyłącz jtag jak masz włączony.

    Namazane ze smarta.

    _________________
    Usługi druku przestrzennego - www.drumik.pl



    Góra
     Zobacz profil  
    cytowanie selektywne  Cytuj  
     Tytuł: Re: Odp:
    PostNapisane: 18 lis 2014, o 23:33 
    Offline
    Użytkownik
    Avatar użytkownika

    Dołączył(a): 03 sie 2013
    Posty: 87
    Pomógł: 0

    majster napisał(a):
    mickeu napisał(a):

    void led(void){
    PORTA ^= (1<<PORTA5);
    PORTA |= (1<<PORTA7);
    _delay_ms(100);
    PORTA &= ~(1<<PORTA7);


    A co to ?

    Powinno być PORTA ^= (1<<PA5);

    portpins.h
    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.


    to jest z eclipse :)

    Jtag wyłączony



    Góra
     Zobacz profil  
    cytowanie selektywne  Cytuj  
    PostNapisane: 19 lis 2014, o 07:04 
    Offline
    Użytkownik
    Avatar użytkownika

    Dołączył(a): 17 sie 2013
    Posty: 3797
    Lokalizacja: Grudziądz
    Pomógł: 143

    No ok a teraz przeanalizuj pierwszego if i pomyśl przez chwilkę.


    Namazane ze smarta.

    _________________
    Usługi druku przestrzennego - www.drumik.pl



    Góra
     Zobacz profil  
    cytowanie selektywne  Cytuj  
    PostNapisane: 19 lis 2014, o 14:12 
    Offline
    Użytkownik
    Avatar użytkownika

    Dołączył(a): 03 sie 2013
    Posty: 87
    Pomógł: 0

    Błąd znaleziony - maskowanie klawiszy

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

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

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

    lub
    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: 19 lis 2014, o 19:10 
    Offline
    Użytkownik
    Avatar użytkownika

    Dołączył(a): 03 sie 2013
    Posty: 87
    Pomógł: 0

    Antystatyczny napisał(a):
    Kurczaki...tego nie zauważyłem...


    Ja też nie - głównodowodzący pomógł.



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

    Strefa czasowa: UTC + 1


    Kto przegląda forum

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


    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