Haberler:

Foruma Resim Yükleme ve Boyut Sınırlaması ( ! )  https://bit.ly/2GMFb8H

Ana Menü

CCS Registerlere direkt ULAŞIM

Başlatan xcyqp09k2, 19 Haziran 2016, 13:54:13

xcyqp09k2

değerli yorumlarınız için teşekkürler. her birinize ayrı ayrı teşekkür ediyorum. ccs ders kaynakları bulmaya çalışacağım. ama bu ccs sanki her pic standartmış gibi bize sunulmuş ya ona kafam takılıyor. öyle picler var ki bunlar için hazır bir kod çeviricisi yazılmamış mesela ccs e. bunun için register ayarını yapman gerekli diyelim. o zamanda artık o kadarcık göz yumup biraz register ataması falan yapıp halledeksin ;) ya da bu iş en kökten halledilmek isteniyorsa dediğiniz gibi mplab + biraz da assembly ile mükemmel becerilere ulaşılabilir.

sifirzero

abiler yeni birşeyler öğrendik.registerler çok öenmli bir yere sahip demekki.küçük programlar yazdığımdan hissetmiyordum.
sifirzero.blogspot.com [email]sifirrzero@gmail.com[/email] iman hem nurdur hem kuvvettir

yldzelektronik

Sanki ccs den önce biraz c öğrenmek gerekiyor.

Nasıl oluyorda protonda hızlıca bit seviyesinde işlem yapılabilirken, c de yapılamıyor.Acaba eksikleri mi var ki?

Ccs den evvel ansii c öğrenmekte fayda olabilir.
Kişinin başına gelen hayır Allah'tandır. Kişinin başına gelen şer nefsindendir. Nefislerimizle kendimize zulüm ediyoruz.

LukeSkywalker

MikroC tavsiye ederim. Ben de mcu programlama işine ASM ile başlayıp ardından CCS C'ye geçip en sonunda MikroC'yi keşfederek devam etmekteyim. MikroC hem profesyonel hem de rahat bir kullanım sunmakta.

ecunnu

#19
@xcyqp09k2

Bit field diye aratırsan ornekler cikacaktir asagida kucuk bir ornek paylastim

struct {
short x:5, y:4, z:7;
}data;

struct data my_data;

my_data.x = ....
my_data.y = ....
my_data.z = ....


Bu daha anlasilir

struct data{

unsigned short bit0:1, bit1:1,bit2:1, bit3:1, bit4:1, bit5:1, bit6:1, bit7:1;

}my_data;

int main(void) {
    WDTCTL = WDTPW | WDTHOLD;   // Stop watchdog timer
    x++;
    my_data.bit0=1;
    my_data.bit1=1;
    my_data.bit2=0;
    my_data.bit3=1;
    my_data.bit4=1;
    my_data.bit5=1;
    my_data.bit6=0;
    my_data.bit7=0;   
   return 0;
}

30f4011

#20
merhaba ben pıc ile rtc yapmak istiyorum ,ccs c ile daha önce bu konuyu bu sitede görmüştüm .proton + kodu ile yazılmıştı. işte o kodlar;
bu kodları ccs c ye çevirebilen arkadaş varmı acaba acil yârdim
ccs c ye yeni başladımda
//
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