avatar_ete

Saat Projeleri

Başlatan ete, 05 Eylül 2011, 11:13:26

erdoganacun

hocam iznin  olursa  bu  konuyla ilgili  yeni  konu  açabilirmiyim

erdoganacun

#256
 
 program PANEL_7X30_USB

SYMBOL  DATO_R =  PORTB.5
          SYMBOL  CLOCK_R = PORTB.6
          SYMBOL  LATCH_R = PORTB.7

          const TEMP_RESOLUTION as byte = 12



          dim Soft_I2C_Scl  as sbit at RA3_bit
               Soft_I2C_Sda  as sbit at RA4_bit
               Soft_I2C_Scl_Direction as sbit at TRISA3_bit
               Soft_I2C_Sda_Direction as sbit at TRISA4_bit

      Dim I as Byte


      Dim Ancho_Letra as Byte

      dim numerox as byte
      dim  Flag_ERROR as byte
      DIM  Direccion_eeprom AS WORD
      dim hora as byte
      DIM MINUTO AS BYTE
      DIM SEGUNDO AS BYTE
      DIM DIA_SEMANA AS BYTE
      DIM DIA AS BYTE
      DIM MES AS BYTE
      DIM YEAR AS BYTE
      dim aux77 as byte
      dim bloque as byte
      dim bloques as byte
      dim colx as word
      dim aux10 as byte
      dim frames as byte
      dim aux9 as byte
      dim fx as byte
      dim numero as byte
      dim auxiliar as byte
      dim dig1 as byte
      dim dig2 as byte
      dim dig3 as byte
      dim dig4 as byte
      dim dig5 as byte
      dim dig6 as byte
      dim segundo2 as byte
      dim x as byte
      dim segundo3 as byte
      DIM temp as word
      DIM error_flag AS BYTE
      DIM INTERMITENCIA AS BYTE
      DIM LETRA AS BYTE
      DIM HORAS AS BYTE
      DIM MINUTOS AS BYTE
       dim text as CHAR[9]
      dim Columnas as WORD[32]
      dim Columnasd as WORD[16]


sub procedure Display_Temperature(dim byref temp2write as word )
const RES_SHIFT = TEMP_RESOLUTION - 8

dim temp_whole as byte
    temp_fraction as word
  ' Check if temperature is negative
    text = "000.0000"

  if (temp2write and 0x8000) then
    text[0] = "-"
    temp2write = not temp2write + 1
  end if

  ' Extract temp_whole
  temp_whole = word(temp2write >> RES_SHIFT)

  ' Convert temp_whole to characters
  if ( temp_whole div 100 ) then
    text[0] = temp_whole div 100  + 48
  else
    text[0] = " "
  end if

  text[1] = (temp_whole div 10) mod 10 + 48              ' Extract tens digit
  text[2] =  temp_whole mod 10        + 48               ' Extract ones digit


erdoganacun

  const TEMP_RESOLUTION as byte = 12

hocam  18B20  sayusal  kodu 

erdoganacun

 hocam tex  dosyasındaki  kodların orjinali  bu

ete

O verdiğin satır değeri 12 olarak ayarlanan sıcaklık okuma çözünürlük değeri.
Ben hala bir okuma kodu göremedim. Bir fonksiyonla okunabilir ve haxır kütüphane kullanılıyor olabilir.

Ete

Analog

Hocam merhaba.
Sizin DS1307' li  SAAT 44 projesini 16f1827'ye uyarlamaya çalıştım. Çünkü yapacağım ilaveler için ek belleğe ihtiyacım vardı.
Derleyici programı derledikten sonra resimdeki uyarıyı veriyor. Devre şemasını ve dosyaları ilişikte verdim hocam.
Çözemediğim 2 husu var.
1. Saat ayarı için Mod tuşuna basınca program tarih ayarı etiketine dallanıyor ve orada kalıyor ordan çıkamıyor.
2. TRISA=0 yapınca işlemci çalışmıyor. Saati çalıştırmak için TRISA=0'yı iptal etmem gerekiyor.
Yardımcı olursanız sevinirim.

ete

Bu işlemcide CLEAR komutu çalışmaz. O komutu silmen gerekiyor.
Yalnızca bu kusur değil Çalışırken Önce saat sonra sıcaklık sonra takvime geçiyor ve orada kalıyor neden acaba?
Her neyse,
IF Y=SUM THEN Y=0
satırını sil yerine
IF Y>SUM THEN Y=0 satırını ekle. 

FLASH etiketini bul altındaki 2 satırdan sonrasına RETURN ekle
Ete

MB_77

#262
bu mesaj tarafımdan silinmiştir.

Analog

Hocam söylediğiniz düzeltmeleri yaptım. Ancak TRISA=0 aktif yapınca işlemci halen daha çalışmıyor ve CLEAR komutunu silince derleyici 3 adet uyarı veriyor. Resimde gönderdiğim uyarıdan 3 adet oluyor.

Analog

Sayın MB_77 modüllerin default olarak çalışmadığını bilmiyordum bu yüzden onları kapattım ve MCLR yi bilerek aktif ettim.

ete

Ben yapınca hata vermiyor. Ekde veriyorum derlenmiş halini . Sendeki sorun nedir bilemem.
Cross boundary bir hata değil ikazdır. Hafıza bloklarını aştığını belirtiyor.

Ete

MB_77

#266
bu mesaj tarafımdan silinmiştir.

ete

MCLR pini yalnızca giriş olarak çalışan bir pindir. Siz TRISA ya komple sıfır verseniz bile RA5 (MCLR pini) yinede giriş olarak kalır ve hiç bir zaman çıkış olarak çalışmaz. Bu pinde dahili Pullup da vardır. Şayet MCLR_ON konumunda ise zaten Pullup default olarak aktiftir. Yani MCLR_ON iken MCLR pinine pullup direnci bağlamasanızda işlemci çalışır. Zaten  Program simulasyonda sorunsuz çalışmaktadır.

Ete

MB_77

#268
bu mesaj tarafımdan silinmiştir.

Analog

Sayın Ete Hocam, size gönderdiğim programda TRISA=0 iptal durumda idi. Sizi onu öyle denemişsiniz. O yüzden sorunsuz çalışmış. TRISA=0 iptal durumda sorunsuz çalışıyor. MB-77 nin söylediği gibi yaptım TRISA=%00100000 sorun çözüldü hocam. Yani MCLR_ON durumunda TRISA.5=1 OLMASI GEREKİYOR. MCLR_OFF durumunda pini giriş yada çıkış olarak ayarlaman birşey değiştirmiyor.

Powered by EzPortal