program termometru na Atmega8, nie wiem jaki czujnik

Tutaj będą przenoszone tematy, którymi dalej nie warto się zajmować, co jakiś czas zawartość tego forum jest kasowana.
Zablokowany
minik97
-
Posty: 75
Rejestracja: 10 mar 2011, 22:12
Lokalizacja: MAŁOPOLSKA

program termometru na Atmega8, nie wiem jaki czujnik

Post autor: minik97 » 15 gru 2011, 21:16

Witam serdecznie posiadam kod na termometr samochody

Kod: Zaznacz cały

$regfile = "m8def.dat"
$crystal = 8000000

Dim Nr_menu As Byte

Config Lcd = 16 * 2

Config Lcdpin = Pin , Db4 = Portc.3 , Db5 = Portc.2 , Db6 = Portc.1 , Db7 = Portc.0 , E = Portc.4 , Rs = Portc.5

Config 1wire = Portb.0
'definicje kontrolek
Config Portd.6 = Output
Config Portd.5 = Output

Led_cz Alias Portd.6
Led_p Alias Portd.5

'definicje termometru
Deflcdchar 0 , 2 , 5 , 2 , 32 , 32 , 32 , 32 , 32           'definicja znaku "stopni"

Dim Tw As Integer
Dim Ulamekw As Integer
Dim Bw(2) As Byte

Dim Tz As Integer
Dim Ulamekz As Integer
Dim Bz(2) As Byte

Dim Dsid1(8) As Byte
Dim Dsid2(8) As Byte
'koniec
'przycisk menu
Config Int0 = Low Level
Config Portd.2 = Input
Set Portd.2
'S1 Alias Pind.7
On Int0 Zmiana
Enable Interrupts
Enable Int0
Dim Zm_menu As Bit

Cursor Off
Cursor Noblink
Cls

Dsid1(1) = 1wsearchfirst()
Dsid2(1) = 1wsearchnext()

Set Led_cz
Lcd " Golf V 1.9 TDI "
Wait 2

Dim I As Byte

For I = 1 To 15
   Shiftlcd Right
   Waitms 130
Next I
Reset Led_cz

   Gosub Pomiar_temp

   Readeeprom Nr_menu , 1

Set Zm_menu

'główna pętla
Do
   'Debounce S1 , 0 , Zmiana , Sub
      If Zm_menu = 1 Then

      Select Case Nr_menu

      Case 0
          Gosub Menu_0

      Case 1
          Gosub Menu_1

      Case 2
         Gosub Menu_2

      Case 3
         Gosub Menu_3

      Case 4
         Gosub Menu_4

      Case 5
         Gosub Menu_5

      Case Else
         Gosub Menu_0
   End Select

      Reset Zm_menu
      Enable Int0
   End If

   Gosub Pomiar_temp
   If Tz >= 29 And Tz < 30 Then
   Reset Led_cz
   Set Led_p
   Elseif Tz >= 30 Then
   Reset Led_p
   Set Led_cz
   Else
   Reset Led_p
   Reset Led_cz
   End If

Loop
End

'podprogramy
Zmiana:
Disable Int0
Enable Interrupts
Incr Nr_menu
If Nr_menu = 6 Then Nr_menu = 0
Writeeeprom Nr_menu , 1
Set Zm_menu
Return

Menu_0:
         Cls
         Lcd "Zew: " ; Tz ; "," ; Ulamekz ; Chr(0) ; "C"
Return

Menu_1:
         Cls
         Lcd "Wew: " ; Tw ; "," ; Ulamekw ; Chr(0) ; "C"
Return
Menu_2:
         Cls
         Lcd "menu 2"
         Waitms 200
Return
Menu_3:
         Cls
         Lcd "menu 3"
         Waitms 200
Return
Menu_4:
         Cls
         Lcd "menu 4"
         Waitms 200
Return
Menu_5:
         Cls
         Lcd "menu 5"
         Waitms 200
Return


Pomiar_temp:
   Disable Interrupts
   1wreset
   1wwrite &H55
   1wverify Dsid1(1)
   1wwrite &HBE
   Enable Interrupts
   Waitms 750
   Disable Interrupts
   Bz(1) = 1wread(2)
   '---------------------------------
   1wreset
   1wwrite &H55
   1wverify Dsid2(1)
   1wwrite &HBE
   Enable Interrupts
   Waitms 750
   Disable Interrupts
   Bw(1) = 1wread(2)
   '---------------------------------
   1wreset
   1wwrite &HCC
   1wwrite &H44
   Enable Interrupts
   'wyliczenie zewnętrznej temp
   Tz = Makeint(bz(1) , Bz(2))
   Tz = Tz * 10
   Tz = Tz / 16
   Ulamekz = Tz Mod 10
   Tz = Tz / 10
   'wyliczenie wewnętrznej temp
   Tw = Makeint(bw(1) , Bw(2))
   Tw = Tw * 10
   Tw = Tw / 16
   Ulamekw = Tw Mod 10
   Tw = Tw / 10
   Disable Interrupts
   1wreset
      If Err = 1 Then
         Cls
         Lcd "brak odczytu temp"
         Wait 2
      End If
    Enable Interrupts
Return
i chał bym się zapytać jakie ma być tu czujnik i jak go podłączyć do atmegi bo wiem czujnik DS 18b20 podpiąć się inaczej jakoś tylko nie wiem jak? i jeszcze jedno: trzeba stawiać fusy jak tak to jakie ? oprócz tego generatora wewnęcznego co trzeba wyłączyć bo jest rezonator zewnętrze
Pozdrawiam
Pozdrawiam :)

Awatar użytkownika
Pikczu
Użytkownik
Posty: 754
Rejestracja: 18 lip 2005, 18:33
Lokalizacja: Dublin
Kontakt:

Post autor: Pikczu » 15 gru 2011, 22:08

Napisz to po Polsku proszę.
Stawia to się tarota a z fusów się wróży.
My akurat fuse bit-y ustawiamy.


Jestem w 99% pewien ze autorem kodu tez nie jesteś mile widziana wzmianka kto jest autorem kodu itp.
Pozdrawiam

Ps jeśli jesteś obcokrajowcem lub z innego systemu edukacyjnego to ok.

minik97
-
Posty: 75
Rejestracja: 10 mar 2011, 22:12
Lokalizacja: MAŁOPOLSKA

Post autor: minik97 » 16 gru 2011, 7:10

program jest kolegi trochę mój i trochę było z ciąganie z google. i moje pytanie jest takie gdzie trzeba podpiąć ten czujnik i jak :) i czy trzeba ustawić fuse bit-y ?
Pozdrawiam

Awatar użytkownika
kris74
Użytkownik
Posty: 270
Rejestracja: 16 sie 2006, 17:36
Lokalizacja: Gorzów Wielkopolski

Post autor: kris74 » 16 gru 2011, 9:12

Poszukaj sobie jakiegoś podręcznika na temat bascoma.
Ale tu masz jedną odpowiedź gdzie podpiąć ten czujnik.

Kod: Zaznacz cały

Config 1wire = Portb.0 
I nie sądzę aby ten kod był twój czy też kolegi, bo w całości pochodzi z elektrody.

Awatar użytkownika
Pikczu
Użytkownik
Posty: 754
Rejestracja: 18 lip 2005, 18:33
Lokalizacja: Dublin
Kontakt:

Post autor: Pikczu » 16 gru 2011, 19:41

Popraw ten pierwszy post bo aż szczypie w oczy.

Zablokowany