Elektroda.pl
Elektroda.pl
X
Proszę, dodaj wyjątek www.elektroda.pl do Adblock.
Dzięki temu, że oglądasz reklamy, wspierasz portal i użytkowników.

atiny13, portb.5 wciąż zwarty.

_pieczas 07 Kwi 2012 14:34 1259 6
  • #1 07 Kwi 2012 14:34
    _pieczas
    Poziom 12  

    Słuchajcie, chciałem uruchomić silnik krokowy (bipolarny - 4 wyprowadzenia) za pomocą l293d i attiny13. Sam silnik krokowy i mostek chciałbym pominąć bo prawdopodobnie nie w tym leży problem. Mianowicie, chodzi o to, że dziwna sytuacja następuje na poziomie attiny. Sygnał na mostek podawany jest z PORTB.1 - PORTB.4 a PORTB.0 i PORTB.5 to wejscia.
    Silnik ma zostać załączony gdy PORTB.0 lub PORTB.5 będą zwarte do masy. Mam taki kod:

    Kod: basic4gl
    Zaloguj się, aby zobaczyć kod


    rzecz w tym, że w tej chwili program działa. Jednak gdy wyrzucę znak komentarza z sekcji odpowiedzialnej za sterowanie z Portb.5 to silnik cały czas się kręci. Jeśli wyrzucę sterowanie poprzez zwarcie potrb.0 i zostaje tylko portb.5 to również silnik wciąż jest załączony. Wniosek z tego taki, że warunek
    Kod: basic4gl
    Zaloguj się, aby zobaczyć kod
    wciąż jest prawdą niezależnie od tego czy portb.5 jest zwarty czy nie.
    Czy taka sytuacja jest normalna i coś przeoczyłem czy wina leży po stronie technicznej procesora? Nie jest on oczywiście świeży bo pracował w innych układach i jest raczej z odzysku, ale to chyba nie powinno mieć znaczenia jeśli całość działa poprawnie.
    Nie angażując mostka i silnika tylko na płytce testowej podpinając diody (oczywiście czas wait zmieniam na dostatecznie duży aby zauważyć miganie) sytuacja ma sie tak samo.

    0 6
  • #2 07 Kwi 2012 14:58
    mirekk36
    Poziom 42  

    _pieczas napisał:
    .... czy wina leży po stronie technicznej procesora? .


    Ty się nigdy nie doszukuj błędów technicznych po stronie procesora tylko szukaj ich u siebie - bo tak to stracisz jeszcze mnóstwo czasu na programowanie albo się zniechęcisz.....

    Proponuję ci zajrzeć do noty PDF tego procka i zobaczysz, że PB5 to pin RESET który wykorzystujesz do programowania. Więc jak chcesz żeby ci działał jako wejście ???? hmmmm ???? Można wprawdzie za pomocą fusów zmienić żeby ten pin działał jako zwykły porto I/O ale UWAŻAJ! stracisz wtedy możliwość programowania procka przez ISP ....

    teraz jaśniej ?

    0
  • #3 07 Kwi 2012 23:16
    _pieczas
    Poziom 12  

    Pisząc wina po stronie procesora miałem na myśli jego wyeksploatowanie albo coś w tym stylu. Do programowania również służą MISO MOSI i SCK, które są normalnie portami I/O. Dobra, chociaż wiem, że nic nie zrobię w ten sposób. Dzięki za odpowiedź.

    0
  • #4 08 Kwi 2012 00:43
    mirekk36
    Poziom 42  

    _pieczas napisał:
    Pisząc wina po stronie procesora miałem na myśli jego wyeksploatowanie albo coś w tym stylu.


    No to ci właśnie na to odpowiedziałem - to nie ma związku z żadnym wyekspoatowaniem. Prędzej my znikniemy z naszego świata i twoje wnuki zanim taki procek się wyeksploatuje ;)

    _pieczas napisał:
    Do programowania również służą MISO MOSI i SCK, które są normalnie portami I/O. Dobra, chociaż wiem, że nic nie zrobię w ten sposób. Dzięki za odpowiedź.


    No ale RESET zauważ to nie to samo co MOSI, MISO i SCK - taka mała subtelna różnica jest między nimi.

    0
  • #5 08 Kwi 2012 10:03
    gaskoin
    Poziom 38  

    Jakby w tak trywialnych rzeczach jak IO uC miał błąd techniczny to nikt by go nie używał.

    0
  • #6 09 Kwi 2012 13:10
    1477378
    Użytkownik usunął konto  
  • #7 10 Kwi 2012 14:24
    _pieczas
    Poziom 12  

    marcin387 napisał:
    Zauważyłem u Kolegi drobny błąd w programie, po wyjściu programu z instrukcji IF... End If na silnik dalej idzie prąd, może to mieć znaczenie jeżeli program z jednego warunku nie wejdzie w drugi. W rozwiązaniu problemu z przyciskami może pomógłby wewnętrzny przetwornik ADC, trzeba by zamienić Pinb.0 z którymś wyjściem silnika które obsługuje ADC. Podłączenie przycisków zrobiłbym na dzielniku napięcia łącząc je szeregowo od +5V do masy, przykładowo R1(330R),R2(2K),R3(2K) a przyciski równolegle do R2,R3. Pierwszy opornik to zabezpieczenie w przypadku wciśnięcia dwóch przycisków równocześnie.


    To raczej będe sobie darował. Generalnie idea była taka, że silnik ma się obracac prawo/lewo i być sterowany pilotem RC5. Oczywiście rzecz działała,ale przy współpracy z "getrc5" wszytko działało tak wolno, że zrezygnowałem i stwierdziłem, że będzie to zwierane ręcznie, ewentualnie inny attiny13 (bo to akurat mam pod ręką) odbierałby kod rc5 i dawał sygnał na portb.0 i portb.5 tego procka, który odpowiedzialny jest za kontrole silnika, no ale zasada ta sama. ( niekoniecznie mus być zwierany, może też być stan wysoki ). Chodziło mi tylko o rozwiązanie problemu co z tym pb.5. Fakt, nigdy wcześniej go chyba nie wykożystywałem ( dy potrzebowałem więcej pinów IO brałem attiny2313 ale ten pewnie będzie niewiele szybszy) więc stąd to niedopatrzenie.

    0
  Szukaj w 5mln produktów