ccs c pıc ile rtc yapmak

Başlatan 30f4011, 03 Ağustos 2016, 23:51:01

30f4011

merhaba ben ccs c ile pıc i rtc yapmak istiyorum,ve ccs c ye yeni başladım .aslında proton+koduyla yazılmış program var bunu ccs c ye dönüştürebilen bir arkadaş varmı acaba işte o kodlar:
Device 16F876
Xtal = 20
@CONFIG_REQ
@__config HS_OSC & WDT_OFF & PWRTE_ON & LVP_Off

All_Digital = true
PortB_Pullups = off

TRISA = %00111111
TRISB = %00000001 
TRISC = %10000011

PORTA=0
PORTB=0
PORTC=0
DelayMS 10


Dim Saniye        As Word'
Dim Dakika        As Word
Dim Saat          As Word
Dim ZAMAN1        As Word
Saat = 0
Saniye= 0
Dakika = 0
ZAMAN1 = 0

Symbol RBIF = INTCON.0   ' Bu bit PORTB değişiklik oluşmuş bir Interrupt varsa "1" olur
Symbol INTF = INTCON.1   ' Bu bit RB0 kesmesinden dolayı oluşmuş bir Interrupt varsa "1" olur
Symbol T0IF = INTCON.2   ' TMR0 sayıcısı zaman aşımı bayrağı
Symbol RBIE = INTCON.3   ' PORTB (4, 5, 6, 7) deki değişiklik kesmesini aktif yapma bayrağı
Symbol INTE = INTCON.4   ' RB0 Harici kesmeyi aktif yapma bayrağı
Symbol T0IE = INTCON.5   ' TMR0 sayıcı kesmesini aktif yapma bayrağı
Symbol PEIE = INTCON.6   ' Arabirim kesme aktif yapma bayrağı.
Symbol GIE  = INTCON.7   ' Tüm kesme işlemlerini etkin/iptal etme bayrağı
clrwdt
Symbol TMR1IE = PIE1.0   ' TMR1 sayıcısının Kesme Yetki Biti
Symbol TMR1IF = PIR1.0   ' TMR1 sayıcısının "Kesme Oluştu" bayrağı

Symbol TMR1ON = T1CON.0     ' Timer1 ON
Symbol TMR1CS = T1CON.1     ' Timer1 Clock Source Select
Symbol NOT_T1SYNC = T1CON.2 ' Timer1 External Clock Input Synchronization Control
Symbol T1OSCEN = T1CON.3    ' Timer1 Oscillator Enable Control
Symbol T1CKPS0 = T1CON.4    ' Timer1 Input Clock Prescale Select bits
Symbol T1CKPS1 = T1CON.5    ' Timer1 Input Clock Prescale Select bits


On_Hardware_Interrupt GoTo kesme
GIE = 0    ' Turn off global interrupts
TMR1IE = 1 ' TMR1 sayıcısının Kesme Yetki Biti
TMR1IF = 0 ' TMR1 sayıcısının "Kesme Oluştu" bayrağı
INTE = 0   ' RB0 Harici kesmeyi aktif yapma bayrağı
INTF = 0   ' Bu bit RB0 kesmesinden dolayı oluşmuş bir Interrupt varsa "1" olur
PEIE = 1   ' Arabirim kesme aktif yapma bayrağı.
TMR1ON = 1 ' Timer1 ON
GIE = 1    ' Enable global interrupts
T1CKPS0 =0 'TMR1 ZAMANLAMA SET
T1CKPS1 =0

GoTo BASLA

kesme:
Context Save
    GIE = 0 
      Inc ZAMAN1
      TMR1IF = 0
      If ZAMAN1=76 Then
      DelayUS 3845
      nop
      TMR1L =0
      TMR1H =0
      ZAMAN1 =0
      Inc Saniye
      If Saniye > 59 Then Inc Dakika :Saniye = 0
      If Dakika > 59 Then Inc Saat   :Dakika = 0
      If Saat   > 23 Then Saat = 0
      GoSub Islem
      EndIf

    GIE = 1
Context Restore


BASLA:

GoTo BASLA



Islem:

Return
End

sifirzero

Google da aratırsan bulursun kardeşim yapılan örnekler var
sifirzero.blogspot.com [email]sifirrzero@gmail.com[/email] iman hem nurdur hem kuvvettir

30f4011

ilgilendiğniz için teşekkür ederim

30f4011

#3
ama nasıl yapıcağmı bilemiyorum profesyonal bir kod yazıcı değilim yani bunun ccs c kodunu yazıp verebilirmisiniz

kantirici

Yukarıda yapılan yazılımsal RTC. 100ms lik bir timer kurun. Her kesmede bir sayacı bir arttırın. Sayaç 10 olunca 1 saniye geçmiştir. Saniye sayacını bir arttırın, saniye 60 olunca dakikayı bir arttırıp saniyeyi sıfırlayın, dakika 60 olunca saati bir arttırın v.s.