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] Załączenie przekaźnika. Bascom

ma16 15 Sie 2009 13:01 1092 3
REKLAMA
  • #1 6895610
    ma16
    Poziom 13  
    Witam Koledzy

    Dopiero zaczynam przygodę z mikroprocesorami i potrzebuje pomocy. napisałem sobie prosty programik który chce żeby działał następująco. Jeśli S1 jest w stanie wysokim to W1 jest załączony przez 30 sek. gdy sprawdzam w bascomie poprawność programu występuję błąd 31 i 93. poniżej załączam kod programu
    $regfile = "m8def.dat"                                      'plik dyrektywy
    $crystal = 8000000
    
    Config Pind.0 = Output                                      'PD0 wyjście
    Config Pind.1 = Input                                       'PD1 wejście
    
    W1 Alias Portd.0                                            'przypisanie nazwie
                                                                 'Portd.0 W1
    S1 Alias Portd.1                                            'przypisanie nazwie
                                                                 'Portd.1 S1
    
    Set Portd.1
    
    
    Do
        If S1 = 1 Then                                          'jesli S1 w stanie 1
          Set W1                                                'to włącz W1
          Wait = 30                                             'czekaj 30 sek
          Reset W1                                              'wyłączenie W1
        End If
    Loop
    End
  • REKLAMA
  • REKLAMA
  • #3 6895723
    ma16
    Poziom 13  
    dzięki wielkie
  • #4 6920954
    pgnige
    Poziom 14  
    Kolejny błąd jest taki, że stan pinu na każdym z portów odczytuje się poprzez rejestr Pind.1, a nie Portd.1 - tylko zmiana stanu (niemożliwy jest jego odczyt). Odczyt Pin, a przypisanie Port.
    Jeszcze jedno, bo przedtem nie zauważyłem - konfiguracja portów jest następująca:
    Config Portd.1 = Input, lub Reset Ddrd.1
    Jest to w tym przypadku ustawienie pinu w stan wejścia, więc nie można użyć rejestru służącego do odczytu, czyli Config Pind.1 = Input jest błędnym zapisem. Podobnie z drugim pinem.
REKLAMA