Czy wolisz polską wersję strony elektroda?
Nie, dziękuję Przekieruj mnie tammanekinen napisał:
Nie wiem też po co to dzielenie przez 16 w kodzie, przecież wystarczy przesunąć zmienną o 4 bity w prawo, a kod zmaleje w oczach
*
*
Locate 1 , 1
Lcd "Temp.wew: " ; Ss ; Chr(0) ; "C "
*
*
*
Locate 2 , 1
Lcd "Temp.zew: " ; Ss ; Chr(0) ; "C "
*
*
Locate 1 , 1
Lcd " Temp.wew " ; Ss ; Chr(0) ; " "
*
*
*
Locate 2 , 1
Lcd " Temp.zew " ; Ss ; Chr(0) ; " "
Cytat:Czy istnieje możliwość odczytu procka do postaci kodu (kod był bascom)?Cytat:
$regfile = "m8def.DAT" 'deklaracja procesora, w tym wypadku Atmega8
$crystal = 1000000 'deklaracja cześtotlwiości pracy (wew oscylator 1MHz w zupełności wystarcza)
'Deklaracja portów od wyświetlacza LCD
Config Lcdpin = Pin , Db4 = Portb.0 , Db5 = Portb.1 , Db6 = Portb.2 , Db7 = Portb.3 , E = Portb.4 , Rs = Portb.5
Config Lcd = 16 * 2 'ustawiamy typ wyświetlacza
'*************************************WAŻNE**********************************************
'Pamiętać o podłączeniu rezystora podciągającego o wartości 4.7kohm między linią DQ a VCC
Config 1wire = Portd.5 'deklaracja portu na którym będą podpięte DS18b20
Dim I1 As Integer
Dim I2 As Integer
Dim Ss As String * 6
Dim Dsid1(8) As Byte
Dim Dsid2(8) As Byte
Dim B As Byte 'deklaracja zmiennej do odczytu kodów ID
Dim W As Word 'deklaracja zmiennej do odczytu ilośc czujników
Deflcdchar 0 , 8 , 20 , 11 , 4 , 4 , 4 , 3 , 32 'znak stopnia Celsjusza
Cursor Off
Cls
Lcd "GOLF III 1.9 TDI" 'ekran startowy (pojawia się tylko podczas włączania urządzenia)
Lowerline
Lcd " WITAJ SZEFIE "
Wait 5
Cls
W = 1wirecount()
Lcd "Ilosc czujek: " 'Informuje ile czujników jest podpiętych do układu (pojawia się tylko podczas włączania urządzenia)
Waitms 500
Lcd W
Wait 2
Cls 'Znajdź pierwszy czujnik podpięty do portu
Dsid1(1) = 1wsearchfirst() 'Znajdź kolejny czujnik podpięty do portu
Dsid2(1) = 1wsearchnext() 'Znajdź kolejny czujnik podpięty do portu
'*******************Odczyt numerów ID czujników temperatury*********************
If Dsid1(8) = Crc8(dsid1(1) , 7) Then 'ta opcja pojawia się tylko przy włączaniu urządzenia
Locate 1 , 1
Lcd " OK Czujnik 1 ID"
Locate 2 , 1
For B = 1 To 8
Lcd Hex(dsid1(b))
Next
End If
Wait 2
Cls
If Dsid2(8) = Crc8(dsid2(1) , 7) Then
Locate 1 , 1
Lcd " OK Czujnik 2 ID"
Locate 2 , 1
For B = 1 To 8
Lcd Hex(dsid2(b))
Next
End If
wait 2
Cls
'*******************koniec odczytu ID czujników temperatury*********************
Do
1wreset
1wwrite &HCC
1wwrite &H44 '--------konwersja temp dla wszystkich dsow
' pierwsza konwersja po wlaczeniu zasilana DS daje 85st, by wynik był prawidłowy, musi byc pierwsza
Wait 1
1wreset
1wwrite &H55
1wverify Dsid1(1) 'wysyłamy adres pierwszego czujnika
1wwrite &HBE
I1 = 1wread(2)
'---------------------------------
1wreset
1wwrite &H55
1wverify Dsid2(1) 'wysylam adres drugiego czujnika
1wwrite &HBE
I2 = 1wread(2)
I1 = I1 * 10
I1 = I1 / 16
Ss = Str(i1)
Ss = Format(ss , " 0.0")
Locate 1 , 1
Lcd " TEMP Zew " ; Ss ; Chr(0) ; " "
I2 = I2 * 10
I2 = I2 / 16
Ss = Str(i2)
Ss = Format(ss , " 0.0")
Locate 2 , 1
Lcd " TEMP Wew " ; Ss ; Chr(0) ; " "
Loop
modymat napisał:Dlaczego ustawiony pin reset jako port to aż taki wielki problem?
Cytat:When programming the RSTDISBL Fuse Parallel Programming has to be used to change fuses or perform further programming.
Saabotaz napisał:3,1kb po kompilacji, ale rzeźnia. Też zaczynałem od czystego Bascoma ale teraz jadę ze wstawkami w asm (czasem cały program to wielka wstawka asm).
excray napisał:Z ASM na C w celu oszczędzania pamięci to trochę jak z samochodu na rower się przesiadać i jeździć po autostradzie.