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

[ Bascom] program migająca dioda + schemat podłączenia uC d

bakardi 29 Lip 2009 19:34 6868 40
REKLAMA
  • #1 6835669
    bakardi
    Poziom 12  
    witam

    a więc chciałem napisać swój pierwszy program w życiu :)
    wygląda on tak:
    
    
    $regfile = "m8def.dat"
    
    $crystal = 8000000
    
    Config Pinb.6 = Output
    Config Pind.4 = Input
    
    
    
    P Alias Pind.4
    D Alias Pinb.6
    
    
    
     Dim Mruganie As Bit
    
        Do
     If P = 0 Then
     Waitms 500
       D = 1
     Waitms 500
       D = 0
    
     End If
    
     Loop Until P = 1
       Do
     If P = 1 Then
     D = 0
     Wait 2
     D = 1
         Loop Until P = 0
    
    
     End If


    program polega na tym że cały czas mruga dioda. Jeżeli przycisk rozwarty to dioda mruga co pół sekundy, a jeżeli przycisk zwarty to mruga co 2 sekundy.
    czy dobrze napisałem program??

    i po zaprogramowaniu atmegi podłączyłem wszystko tak:

    [ Bascom] program migająca dioda + schemat podłączenia uC d

    i jak podłączam zasilanie do atmegi to nic się nie dzieje... Co źle podłączam ?? Lub może to wina programu??

    a i jak by co tak wygląda atmega8
    [ Bascom] program migająca dioda + schemat podłączenia uC d

    Mam nadzieje że mi pomożecie :)

    Pozdrawiam.
  • REKLAMA
  • Pomocny post
    #2 6835749
    Konto nie istnieje
    Konto nie istnieje  
  • Pomocny post
    #3 6835753
    janbernat
    Poziom 38  
    W szereg z diodą włącz opornik 220Ohm- do 1kOhm bo Ci spali się dioda albo procesor.
    Mikroswitch daj do masy a nie do +zasilania.
    Czy z tej baterii jest też zasilany procesor?
    Dopiero potem o kodzie.
  • #4 6835833
    bakardi
    Poziom 12  
    Czy z tej baterii jest też zasilany procesor?

    tak. jest zasilany tak jak jest na schemacie.


    dodane
    ok koledzy zrobiłem tak:
    [ Bascom] program migająca dioda + schemat podłączenia uC d

    a kod zrobiłem taki:
    
    
    $crystal = 8000000
    $regfile = "M8def.dat"
    
    Config Pinb.6 = Output
    Config Pind.4 = Input
    
    
    
    P Alias Pind.4
    D Alias Pinb.6
    
    P = 1
    
     Dim Mruganie As Bit
    
        Do
     If P = 0 Then
     Waitms 500
       D = 1
     Waitms 500
       D = 0
    
     End If
    
     Loop Until P = 1
       Do
     If P = 1 Then
     D = 0
     Wait 2
     D = 1
         Loop Until P = 0
    
    
     End If
  • Pomocny post
    #5 6835848
    janbernat
    Poziom 38  
    Kod bakardi się kompiluje bezbłędnie a kod Rocket_93-nie.
    To nie C.
    Nie może być if P then.
    Warunek musi być jawnie zdeklarowany.

    Dodano po 2 [minuty]:

    bakardi, jak dasz opornik w szereg z diodą i połączysz mikroswitch do masy to prawie powinno działać.

    Dodano po 3 [minuty]:

    Jeszcze tylko podciąganie pinu wejściowego.
    Dopisz portd.4=1
  • REKLAMA
  • Pomocny post
    #6 6835888
    Konto nie istnieje
    Konto nie istnieje  
  • #7 6835903
    bakardi
    Poziom 12  
    Cytat:
    Jeszcze jedna uwaga - konieczny jest kondensator na zasilaniu 100nF - to na przyszłość, bo teraz masz bateryjne to i tak zadziała. AVCC trzeba podłączyć też do zasilania. Przydatne jest podciągnięcie lini RESET.


    zasilanie jest teraz z usb :) a AVCC też jest podłączone tylko na schemacie tego nie narysowałem.

    A jak mam podłączyć RST ?? po prostu tak pociągnąć przewód z RST do GND ??
  • Pomocny post
    #8 6835910
    Konto nie istnieje
    Konto nie istnieje  
  • REKLAMA
  • Pomocny post
    #9 6835914
    janbernat
    Poziom 38  
    A potem kod by Rocket_93.
    O' już poprawiony- ale bardziej elegancki niż Twój.
    Chociaż to może potem- swój pierwszy program zachowaj na pamiątkę.

    Dodano po 6 [minuty]:

    bakardi- to po co rysujesz na pierwszym schemacie baterię 4.8V?
    To sugeruje baterię ogniw NiCdx4=4.8V a nie USB.

    Dodano po 1 [minuty]:

    Jak z usb to kondensator koniecznie, z opornikiem do resetu wstrzymaj się jeszcze parę dni.
  • #10 6835955
    bakardi
    Poziom 12  
    ok a więc tak.

    program wyszedł tak
    $crystal = 8000000
    $regfile = "M8def.dat"
    
    Config Pinb.6 = Output
    Config Pind.4 = Input
    
    
    
    P Alias Pind.4
    D Alias Pinb.6
    
    P = 1
    
     Dim Mruganie As Bit
    
        Do
     If P = 0 Then
     Waitms 500
       D = 1
     Waitms 500
       D = 0
    
     End If
    
     Loop Until P = 1
       Do
     If P = 1 Then
     D = 0
     Wait 2
     D = 1
         Loop Until P = 0
    
    
     End If


    a podłączenie tego wszystkiego wyszło tak:

    [ Bascom] program migająca dioda + schemat podłączenia uC d


    janbernat - bo wczośniej miała być bateria :)
  • Pomocny post
    #11 6836002
    janbernat
    Poziom 38  
    Jak już uporasz się z lutowaniem to jeszcze popraw Swój program tak jak Rocket_93 napisał:
    Set Portd.4
    Albo jak ja zwykle piszę:
    Portd.4=1
    To jest to samo.
  • Pomocny post
    #12 6836004
    Konto nie istnieje
    Konto nie istnieje  
  • #13 6836063
    bakardi
    Poziom 12  
    ok to lutuje wg ostatniego schematu jaki załączyłem.

    a jaki mam w końcu wgrać program??

    ten?

    
    
    
    $crystal = 8000000
    $regfile = "M8def.dat"
    
    Config Pinb.6 = Output
    Config Pind.4 = Input
    
    
    
    P Alias Pind.4
    D Alias Pinb.6
    
    
     Dim Mruganie As Bit
    
     Set Portd.4
        Do
     If P = 0 Then
     Waitms 500
       D = 1
     Waitms 500
       D = 0
    
     End If
    
     Loop Until P = 1
       Do
     If P = 1 Then
     D = 0
     Wait 2
     D = 1
         Loop Until P = 0
    
    
     End If


    dodałem w nim set portd.4
  • Pomocny post
    #14 6836070
    janbernat
    Poziom 38  
    Rocket_93- za dużo wiedzy jak na pierwszy program.
    A jeszcze nie wiemy czy już działa.
    W Bascomie kończy program End.
    I konfiguracja portów jest tak:
    Cały port:
    Config portx=output/input.
    Ale pojedyncza końcówka:
    Config pinx.y=output/input
    A jak się da:
    Config portx.y=output/input
    to nie wyrzuca błędu ale potrafi działać "dziwnie".
    A potem podciąganie wejścia albo stan wyjścia to logicznie- set/reset albo =.

    Dodano po 2 [minuty]:

    No wgrywaj po kolei i sprawdzaj.
    Procesor ma gwarantowane 10000 wgrań.
    Powodzenia.
  • Pomocny post
    #15 6836083
    Konto nie istnieje
    Konto nie istnieje  
  • Pomocny post
    #16 6836092
    janbernat
    Poziom 38  
    Ale jak coś zacznie działać to się odezwij.
  • #17 6836140
    bakardi
    Poziom 12  
    a więc tak.

    zasilałem z baterii 4,8V bo nie miałem takich kondnsatorów i musiałem zrezygnować z USB.
    procek ładnie sie zaprogramował.

    No i chwila prawdy. polutowałem wszystki części wkładam procek podłączam zasilanie i....... i nic :/


    czy to program jest zły czy źle podłączam ?
  • Pomocny post
    #18 6836202
    janbernat
    Poziom 38  
    1.Sprawdzić wszystkie połączenia omomierzem.
    2.Zmierzyć wszystkie napięcia woltomierzem.
    3.Sprawdzić czy nic się nie grzeje.
    4.Maksymalnie uprościć program- Twój na pierwszy raz jest zbyt skomplikowany.

    Dodano po 3 [minuty]:

    Na Twoim ostatnim schemacie dioda LED jest podłączona do 0 baterii!
    Czy tak jest w rzeczywistości?
  • Pomocny post
    #19 6837173
    Konto nie istnieje
    Poziom 1  
  • #20 6837687
    bakardi
    Poziom 12  
    zrobiłem to tak na razie bez przycisku żeby nie wprowadzać zamieszania.
    [ Bascom] program migająca dioda + schemat podłączenia uC d


    Teraz to się w ogóle zastanawiam czy mega działa. Jadę do elektronika po części i sprawdzę ją na działającym kodzie. Podłącze wg schematu w książce i zaprogramuje też wg listingu w książce i zobaczymy czy zadziała.
    [ Bascom] program migająca dioda + schemat podłączenia uC d

    Cytat:
    Na Twoim ostatnim schemacie dioda LED jest podłączona do 0 baterii!
    Czy tak jest w rzeczywistości?

    nie, podłączyłem to do + ale na schemacie nie dorysowałem po prostu kreski :P jakoś mi się zapomniało.
  • Pomocny post
    #21 6838748
    janbernat
    Poziom 38  
    
    $crystal = 8000000
    $regfile = "M8def.dat"
    
    Config Pinb.6 = Output
    Config Pind.4 = Input
    
    
    
    P Alias Pind.4                                    'switch-wejście
    D Alias Pinb.6                                    'dioda -wyjście
    
    
     'Dim Mruganie As Bit                   'nie wiadomo po co ta zmienna
    
     Set Portd.4                                      'podciąganie wejścia do + zas.
    Do
        If P = 0 Then
          Waitms 500
          'D = 1 'a tu jest pułapka-można użyć Config pinx.y=output/input ale nie można go ustawić.
          'Można go tylko odczytać.
          'To moze tak:
          Set Portb.6
          Waitms 500
          'D = 0   'ta sama pułapka
          Reset Portb.6
        End If
    
     'Loop Until P = 1       'Dwie pętle niepotrzebne
       'Do
        If P = 1 Then
          'D = 0
          Wait 2
          Set Portb.6
          Wait 2
          'D = 1
         'Loop Until P = 0
          Reset Portb.6
    
         End If
    Loop
    

    Postarałem się zmienić Twój kod w minimalnym stopniu- co nie oznacza że jest optymalny.
    Sprawdziłem w układzie rzeczywistym.
    Działa:D

    Dodano po 13 [minuty]:

    Skopiuj i sprawdź.
  • #22 6839352
    bakardi
    Poziom 12  
    ok sprawdze. a jak mam to wszystko podłączyć??? :) jak byś mógł to weź narysuj :)
  • Pomocny post
    #23 6840582
    janbernat
    Poziom 38  
    Tak jak miałeś ostatnio połączone.
    Starałem się jak najmniej ingerować w Twój układ.
  • REKLAMA
  • #24 6841068
    simpson777
    Poziom 11  
    Powiem ci tak jak byś wszedł na [url=]dioda.com.pl[/url] i tam jest nauka bascoma od podstaw są także małe przykłady. I to chyba powinno ci na początek wystarczyć.
  • #25 6843119
    bakardi
    Poziom 12  
    Cytat:

    Tak jak miałeś ostatnio połączone.
    Starałem się jak najmniej ingerować w Twój układ.


    tak podłączyłem i nic. dioda cały czas sie nie świeci.

    Cytat:
    Powiem ci tak jak byś wszedł na [url=]dioda.com.pl[/url] i tam jest nauka bascoma od podstaw są także małe przykłady. I to chyba powinno ci na początek wystarczyć.


    dioda to jest jedno z najgorszych for jakie kiedykolwiek widziałem!!
    jestem w trakcie czytania książki "programowanie uC AVR w języku bascom". Świetna książka ale jeszcze widocznie nie opanowałem dostatecznie podstaw żeby zacząć pisać.:)
    Temat uważam za zamknięty. Oczywiście dam pomógł tym którzy chcieli mi jakoś pomóc

    Pozdrawiam!
  • Pomocny post
    #26 6843364
    janbernat
    Poziom 38  
    [ Bascom] program migająca dioda + schemat podłączenia uC d
    W takim układzie działa.
    Co może być:
    Odwrotnie podłączona dioda.
    Źle ustawione fusebity- wtedy wszystko chodzi 8 razy wolniej.
    Nie poddawać się!
    Jutro będzie lepiej.

    Dodano po 4 [minuty]:

    "jak byś mógł to weź narysuj"
    No to rysuję.
  • #27 6845547
    bakardi
    Poziom 12  
    fusy mam ustawione tak:
    [ Bascom] program migająca dioda + schemat podłączenia uC d

    zmieniałem tylko taktowanie procka z 1MHz do 8MHz (CKSEL=0100)
  • #28 6845626
    janbernat
    Poziom 38  
    Mam w Twoim programie dokładnie tak samo.
    Sprawdź diodę- czy jest dobrze włączona.
    a nie odwrotnie.
    Sprawdź miernikiem- czy na pinie B.6 zmieniają się napięcia.
    Sprawdź opornik- czy ma na pewno kilkaset Ohm.
  • #29 6845811
    bakardi
    Poziom 12  
    janbernat napisał:
    Mam w Twoim programie dokładnie tak samo.
    Sprawdź diodę- czy jest dobrze włączona.
    a nie odwrotnie.
    Sprawdź miernikiem- czy na pinie B.6 zmieniają się napięcia.
    Sprawdź opornik- czy ma na pewno kilkaset Ohm.


    Dioda działa i jest dobrze podłączona. Pod diodę podpiąłem 270Ω

    sprawdzałem miernikiem to jest cały czas 0

    Nie wiem co źle robię. :/

    Pozdrawiam

    Dodano po 5 [godziny] 41 [minuty]:

    zrobiłem też wg wskazówek w książce. Wcześniej dałem skana tego. I też nie działa :/ czy to moja mega padła ??
    Skoro łączy się z PC to dziwne że nic na niej nie działa...
  • #30 6847073
    Konto nie istnieje
    Poziom 1  
REKLAMA