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

[ATMega8][Bascom] Program sterujący pinami

imlubie 20 Mar 2010 00:45 1599 10
REKLAMA
  • #1 7854768
    imlubie
    Poziom 11  
    Witam
    Zaczynam programować atmege 8 i przeczytałem kilka kursów, lecz nadal nie wiem jak ustawić np. PD0 (GND) PB3 (V).
    Czyli jak do pinów podawać napięcie lub masę.
    W różnych kursach jest inaczej opisane morze się pogubiłem.
  • REKLAMA
  • #2 7854796
    marco47
    Poziom 41  
    Bo wszystkie te metody według tych kursów są dobre , ale musisz wybrać jeden według którego będziesz to robił później .

    Config Portb = &B00000000                         'ustawiasz wszystkie wyjścia na <zero> ( masa )
    Config Portb = &B11111111                         'ustawiasz wszystkie wyjścia na <plus> ( +5V )
    
    Portb.0 = 0                                       'ustawiasz wyjście na <zero>
    Portb.0 = 1                                       'ustawiasz wyjście na <plus>
    
    Portb.0 = Reset                                   'ustawiasz wyjście na <zero>
    Portb.0 = Set                                     'ustawiasz wyjście na <plus>
  • REKLAMA
  • #3 7854841
    imlubie
    Poziom 11  
    No właśnie używam jedną z tych metod i nadal mi to nie działa
    Powinno być to widoczne na pomiarze, lecz na tych portach, co stosuje jest tylko 0.30V
    
    $regfile = "m8def.dat"
    $crystal = 1000000
    
    Portd.0 = 1
    Portb.3 = 0
    
    return
    
    End
  • #4 7854857
    marco47
    Poziom 41  
    Ale należy również ustalić czy te piny mają być wejściami czy wyjściami dla sygnałów , a tego chyba nie zrobiłeś .

    $regfile = "m8def.dat" 
    $crystal = 1000000 
    Config Portb = &B11111111
            Portb = &B00000000
    Config Portc = &B00111000
            Portc = &B00000000
    Config Portd = &B11111111
            Portd = &B00000000

    Pierwsza linijka (portb) określa że port ( piny ) pracuje jako wyjście ( włączone rezystory podciągające ) .
    Druga ustala jaki jest stan wyjść ( w tym przypadku niski poziom napięcia ).
    Adekwatnie pozostałe dla następnych portów .
  • #5 7854869
    imlubie
    Poziom 11  
    Zdążyłem poprawić poprzedni post
    Sprawdzam
    
    $regfile = "m8def.dat"
    $crystal = 1000000
    
    config portd=output
    Portd.0 = 1
    config portb=input
    Portb.3 = 0
    
    return
    end
  • REKLAMA
  • #7 7854894
    imlubie
    Poziom 11  
    Nadal nie działa
    Do układu mam podłączoną jedną diodę i chciałem ją pomrugać, lecz nie mruga
    Na szybko zrobiłem schemat
    [ATMega8][Bascom] Program sterujący pinami
  • REKLAMA
  • #8 7854897
    marco47
    Poziom 41  
    To pokaż cały program bo ten który podałeś nie będzie działał .
    A gdzie masz podłączoną masę zasilania ?
    W tej konfiguracji układ nie będzie działać .
    Źle podłączony tranzystor , emiter ma być podłączony do masy .
  • #9 7854900
    imlubie
    Poziom 11  
    A ja myślałem, że będzie, czyli się przeliczyłem w prostocie napisania programu
    Tak w 100% jest podłączone tamto zrobiłem na szybko z pamięci nie patrząc jak jest i co podłączone
    [ATMega8][Bascom] Program sterujący pinami
  • Pomocny post
    #10 7854905
    marco47
    Poziom 41  
    Na szybko napisany kod
    $regfile = "m8def.dat" 
    $crystal = 1000000 
    Config Portb = &B11111111 
            Portb = &B11111111 
    Config Portc = &B00111000 
            Portc = &B00000000 
    Config Portd = &B11111111 
            Portd = &B11111111
    Do                                                'pętla nieskończona
      Portd.0 = 1                                     'zaświeć lampkę
          Wait 1                                     'czekaj 1 sekundę
      Portd.0 = 0                                     'zgaś lampkę
          Wait 1                                     'czekaj 1 sekundę 
     Loop 
    End                                         'koniec pętli
  • #11 7854917
    imlubie
    Poziom 11  
    Wielkie dzięki za doprowadzenie do mety
    Po poprawkach działa
    $regfile = "m8def.dat"
    $crystal = 1000000
    Config Portb = &B11111111
            Portb = &B00000000
    Config Portd = &B11111111
            Portd = &B00000000
    Do                                                'pętla nieskończona
      Portd.0 = 1                                     'zaświeć lampkę
          Wait 1                                     'czekaj 1 sekundę
      Portd.0 = 0                                     'zgaś lampkę
          Wait 1                                     'czekaj 1 sekundę
     Loop
    End

    zamykam temat
REKLAMA