logo elektroda
logo elektroda
X
logo elektroda
Adblock/uBlockOrigin/AdGuard mogą powodować znikanie niektórych postów z powodu nowej reguły.

[Bascom] attiny2313 - migająca dioda nie działa zgodnie z kodem

binkosss 30 Sty 2015 22:47 1455 9
  • #1 14385350
    binkosss
    Poziom 9  
    Witam, mam nietypowy problem z programem do attiny2313, który powinien w zasadzie działać a nie działa. nie będę owijał w bawełnę zbudowałem przekaźnik sterowany mikrokontrolerem attiny2313 jak ktoś chce zobaczyć to proszę:Link
    potrzebowałem czegoś takiego, ponieważ chciałem zrobić interwałometr do aparatu Canon1100D plan był prosty dać na port w tym przypadku pinb.6 stan wysoki co około 10 s na jakąś 1 s, tak aby przekaźnik zwarł styki i łącząc z aparatem zrobiłoby zdjęcie, wszystko pięknie,podczas testów kodu(testowałem na diodzie led tak aby zobaczyć czy kod dobrze działa) gdy działał to podłączyłem do przekaźnika wg wzoru z tamtego linku. i działało przekaźnik działał ale dlatego ze podczas testów używałem różnych liczb do sterowania komendą Waitms to chciałem zrobić tak aby dioda zapaliła się na około 1s co około 10s wg kodu:
    Kod: text
    Zaloguj się, aby zobaczyć kod

    (w zasadzie mam coś nie tak z oscylatorem i jak pisze 3s to dioda pali sie 6s ale napisze np 200 to jest około 1 s a 4000 to jest około 10s) dioda i tak powinna sie palic chwile i gasnąc na dłuższą chwile i tak Loop, a tak nie robi tylko zauważyłem (nawet mierzyłem stoperem:D)ze jak zrobię tak:
    Kod: text
    Zaloguj się, aby zobaczyć kod
    to dioda zapalała się co około 10s i gasła co około 10s i pytanie czy coś nie tak z kodem ?
    z góry dziękuje
  • #2 14385968
    BlueDraco
    Specjalista - Mikrokontrolery
    W Bascom nie programuję, ale na moje oko jeśli chcesz nadać wartość wyjściu to powinieneś pisać do PORTB, a nie do PINB.
  • #4 14386442
    piotrva
    VIP Zasłużony dla elektroda
    1. Config łączy się zarówno z Pin jak i Port
    2. Tak - jeśli chcesz sterować wyjściem musisz użyć PortX.N
  • #5 14386542
    binkosss
    Poziom 9  
    zgadza się napisałem od nowa i działa użyłem portb.6 i jest tak jak chciałem teraz mam pytanie odnośnie oscylatora w zasadzie korzystam z wewnętrznego chyba 4mhz dzielonego tez chyba bo bascom jakoś to dziwnie pokazuje ustawiłem na wewnętrzny oscylator i dzielnik przez 8 gdy odświeżyłem fusebity to wartości się zmieniają zrobię screeny jeśli chcecie zobaczyć problem.jakie są ustawienia fabryczne fusebity (w bascomie) i jak zrobic aby 1000ms było tymi prawdziwymi 1000ms
  • #6 14386857
    yokoon
    Poziom 29  
    Witam.
    Kod: text
    Zaloguj się, aby zobaczyć kod
  • #7 14387146
    Konto nie istnieje
    Konto nie istnieje  
  • #8 14389273
    binkosss
    Poziom 9  
    czyli mam zmieniać to:$Crystal = 1000000 bo tak to zrozumiałem, to jest tylko (chyba) dla kompilatora. trochę nie rozumiem co daje, jaka jest różnica z zewnętrznym i wewnętrznym oscylatorem np:8mhz i powiedzmy 10mhz lub 4mhz układ,kod,procesor pracuje szybciej czy jak.
  • Pomocny post
    #9 14389366
    Konto nie istnieje
    Konto nie istnieje  
  • #10 14457168
    binkosss
    Poziom 9  
    Dzięki wielkie dużo zrozumiałem, nawet zamiast tej 1 s co 10 teraz zbudowałem interwałometr z wyświetlaczem 2x 7segment mogę sobie do woli zmieniać liczbę, ale potrzebowałem jakiegoś wzorca dzięki któremu by mi przybliżyło zbudowanie zaawansowanego kodu, wiem żenada pinx.x jest tylko do odczytu a przypisać stany można za pomocą portx.x.
REKLAMA