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 AVR: Brak reakcji na stan wysoki na porcie PC.1 przy użyciu ATmega8

nouki 18 Paź 2007 23:39 1214 1
REKLAMA
  • #1 4391988
    nouki
    Poziom 25  
    Posty: 1222
    Pomógł: 28
    Ocena: 98
    procesor maga8
    nie wyswietla bledow w bascomie-avr dziala niby poprawnie...
    wiec problem jest taki:
    temperatura ok.
    gdy na port Pc.1 podam stan wysoki 12v przez stabilizator 5v nic sie nie dzieje tak samo jak z reszta ktora jest pod linia -------------
    zaczynam dopiero zabawe wiec nie mam pojecia co z tym nie tak na dodatek nie wyswietla bledow:) ale sadze ze brakuje czegos w configu.
    p.s wszytkie sygnaly podawane sa przez stabilizator z 12 na 5v wyjcie przekaznika przez tranzystor

    
    $crystal = 1000000
    $regfile "m8def.dat"
    Config Portd = &B1000000
    Portd = &B0000000
    Config Lcdbus = 4
    Config Lcd = 16 * 2
    Config Lcdpin = Pin , Db4 = Pb.2 , Db5 = Pb.3 , Db6 = Pb.4 , Db7 = Pb.5 , E = Pb.1 , Rs = Pb.0     
    Config 1wire = Portd.5
    Dim Odczyt(2) As Byte , A As Byte , T As Integer , T1 As Single , Napis As String * 5
    Dim Bylo As Integer
    Dim Byloo As Integer
    Dim I1 As Integer , Ss As String * 6
    Dim I2 As Integer ,
    
    Dim Dsid1(8) As Byte
    Dim Dsid2(8) As Byte
    Dim B As Byte
    Dim W As Byte
    
    Deflcdchar 0 , 32 , 14 , 17 , 14 , 32 , 32 , 32 , 32
    Cursor Off
    Cls
    
    Dsid1(1) = 1wsearchfirst()                                  'Znajdź pierwszy czujnik podpięty do portu
    Dsid2(1) = 1wsearchnext()                                   'Znajdź kolejny czujnik podpięty do portu
    
    
    
    Do
       1wreset
       1wwrite &H55
       1wverify Dsid1(1)
       1wwrite &HBE
       I1 = 1wread(2)
    
       1wreset
       1wwrite &H55
       1wverify Dsid2(1)
       1wwrite &HBE
       I2 = 1wread(2)
    
       1wreset
       1wwrite &HCC
       1wwrite &H44
    Waitms 750
    
    
    
       I1 = I1 * 10
       I1 = I1 / 16
       'If I1 > 0 Then Cls                                       'korekta przesuniecia znaku st C przy przejściu z temp ujemnej na dodatnią
       Ss = Str(i1)
       Ss = Format(ss , " 0.0")
       Locate 1 , 1
       Lcd "in" ; Ss ; Chr(0) ; "C"
       I2 = I2 * 10
       I2 = I2 / 16
       'If I2 > 0 Then Cls
       Ss = Str(i2)
       Ss = Format(ss , " 0.0")
       Locate 2 , 1
       Lcd "out" ; Ss ; Chr(0) ; "C"
    
    
      If Portc.1 = 1 And Bylo = 0 Then                          'zaplon
      Bylo = Portc.1
      Wait 4
      Set Portd.4
      Else                                                 'portd.4 -przekaznik swiatel
      If Portc.1 = 0 And Bylo = 1 Then        'portd.5 -1 wire
      Bylo = Portc.1                                   'portd.6 -centralny otwarcie
      Wait 5                                               'portd.7 -centralny zamkniecie
      Reset Portd.4                                    'portc.0 -przycisk drzwi masa  End If                                                 'portd.1 - alternator-praca silnika
      End If                                               'portc.2 - swiatlo kabina
    
      If Portd.6 = 1 Then                                       'centralny otwarcie
      Set Portc.2
      Wait 2
      Reset Portc.2
      End If
    
      If Portd.7 = 1 Then                                       'centalny zamkniecie
      Set Portc.2
      Wait 3
      Reset Portc.2
      End If
    
      If Portc.0 = 0 And Byloo = 1 Then                         'otwieranie drzwi
      Byloo = Portc.0
      Set Portc.2
      Else
      If Portc.0 = 1 And Byloo = 0 Then
      Byloo = Portc.0
      Wait 2
      Reset Portc.2
      End If
      End If
      Loop
  • REKLAMA
  • Pomocny post
    #2 4392010
    ja_dzik
    Poziom 18  
    Posty: 256
    Pomógł: 28
    Ocena: 17
    Wszędzie gdzie masz Portc.1 zmień na Pinc.1 . Jeśli używa sie portu jako wejścia i sie chce sprawdzić jego stan to sie pisze Pinc.1 , a jeśli chcesz ustawić jakąś końcówkę w stan wysoki to używasz Portc.1
    Tak samo musisz postąpić z pozostałymi portami. Jeśi działa jako wejście to piszesz Pin... a jęsli jako wyjście to Port...
REKLAMA