140 likes | 383 Views
BİL325 m C. Ders - 5. Subroutine , Interrupt , LPM. Ali AKMAN. Günün PROGRAMI. Alt Programlar Kesmeler Düşük Güç Çalışma Modları. Subroutine , Interrupt , LPM. Ali AKMAN. Alt Program Yapısı. Alt programın çağrılması ; Argumanlar R12 – R15 registerlarına atanir .
E N D
BİL325 mC Ders - 5 Subroutine, Interrupt, LPM Ali AKMAN
GününPROGRAMI • Alt Programlar • Kesmeler • Düşük Güç Çalışma Modları Subroutine, Interrupt, LPM Ali AKMAN
Alt Program Yapısı • Alt programın çağrılması • ;Argumanlar R12 – R15 registerlarınaatanir. • call #SubroutineLabel • Alt program • SubroutineLabel: • ;R4 – R11 register değerleri stackta korunur • ;Alt program govdesi • ;Stacktan R4 – R11 register değerleri alınır • ret Subroutine, Interrupt, LPM Ali AKMAN
Yerel Değişkenler • Yerel değişkenlerin depolama: • CPU Registerları: Alt program içinde kullanılmadan önce değerleri stacktakoruma altına alınmalı • RAM: Tercih edilmez. Alt program çağrılsa da çağrılmasa da değişkenler yer kaplar. • Stack: Genellikle kullanılabilecek CPU registerıkalmadığında değişkenlere stack üzerinde yer tahsis edilir. Subroutine, Interrupt, LPM Ali AKMAN
Yerel Değişkenler Yerel Değişken Register Yerel Değişken Stack Subroutine, Interrupt, LPM Ali AKMAN
Argümanlar Geri Dönüş • Argümanlar: • R12 – R15 • Stack • Geri Dönüş • R12 – R15 • Stack Niye 6(SP) ? Subroutine, Interrupt, LPM Ali AKMAN
KesMeler • Sistem Reset • Non-maskableInterrupts • Toplu olarak etkileri iptal edilemez. • Bireysel olarak (Kesme Bayrakları ile) etkileri iptal edilir. • MaskableInterrupts • SP register’ı GIE biti kullanılarak toplu olarak etkisizleştirilebilirler. • Kesme bayrakları ile etkinleştirilirler. Subroutine, Interrupt, LPM Ali AKMAN
KesMeler Ali AKMAN
KesMeler Assembly Uygulama Ali AKMAN
KesMeler C Uygulama Ali AKMAN
Düşük Güç Modları • Aktif Mod: CPU, saat blokları ve etkinleştirilmiş modüller aktif durumdadır. Yaklaşık 300 mA akım çekilir. • LPM0: CPU ve MCLK aktif değil, SMCLK ve ACLK aktif kalır. Yaklaşık 85 mAakım çekilir. • LMP3: CPU, MCLK, SMCLK ve DCO etkin değil, ACLK aktif kalır. Yaklaşık 1 mAakım çekilir. Standart düşük güçte çalıştırma modudur. • LMP4: CPU ve tüm saat blokları etkin değil. Yaklaşık 0.1mA akım çekilir. Subroutine, Interrupt, LPM Ali AKMAN
Düşük Güç Modları Subroutine, Interrupt, LPM Ali AKMAN
Düşük Güç Modları Assembly Uygulama Subroutine, Interrupt, LPM Ali AKMAN
Düşük Güç Modları C Uygulama Subroutine, Interrupt, LPM Ali AKMAN