Fonksiyon oluştururken dikkat edilmesi gerekenler!!

Başlatan bnmdmbrk, 12 Şubat 2015, 07:37:56

bnmdmbrk

        Meraba arkadaşlar. Bitirme projesi yapıyorum ve 16f877a ile bir tane step motor, 2 tane dc motor, birde ultrasonik sensör(hc_sr04) kontrol etmeye çalışıyorum.
        Dc motorlar için bir fonksiyon, step motor için bir fonksiyon, ve sensör içinde portb.0(echo pini) kesmesini ve kesmeye ait fonksiyonu kullanırım diyordum. Fakat bazı yerlerdeki yorumlarda fonksiyon içinde giriş çıkış işlemleri yapmayın, delay komutu kullanmayın gibi şeyler okudum.
        Bu konuda netten ve siteden aramada yaptım fakat konu başlığı olarak böyle bir konu bulamadım.
        Sizlerden isteğim bu konuyu detaylı bir şekilde anlatabilir misiniz? Bunun bir çok arkadaşımızında fayda sağlayacağını düşünüyorum.

Recep METE

Ben fonksiyon içinde herşeyi kullanıyorum.Hiçbir  olumsuz tarafınıda görmedim.Ama bu konuda bilgisi olan abilerimiz yorum yapsında hatamızı biz de görelim.
printf(lcd_putc,"\f  Ne kadar okursan oku, bilgine, yakışır şekilde davranmıyorsan cahilsin demektir.  \n   semfero");d

ferit06

Soru sorarken sorunuzun açık olması gerekir. Fonsiyondan kastınızın" Kesme" ye ait olduğunu düşünüyorum. Kesme fonksiyonları için okuduğunuz kısıtlamalara uymaya çalışın.

mehmet

İşlemlerin mümkün olduğunca parçalanıp
fonksiyonlara ayrılması; hem okunurluluğu
artıracaktır, hem de düzeni sağlayacaktır.
Dolayısıyla küçük değişiklikler ve/veya
hatalar en az çabayla giderilebilecektir.
Olan olmuştur,
olacak olan da olmuştur.
Olacak bir şey yoktur.
---------------------------------------------
http://www.mehmetbilgi.net.tr
https://creativecommons.org/licenses/by/4.0/deed.tr "CC BY"

Salih

Arkadaş benim anladığım kadarıyla, CCS C'de kesme işlemi de fonksiyon gibi göründüğü için,
kesme ile normal fonksiyon işlemini karıştırıyor.
Bu arkadaşın öncelikle kesme ve normal fonksiyon işlemlerini iyi anlaması gerekiyor.

mehmet

O halde her zaman olduğu gibi başa dönmekte
yarar görüyorum; http://www.kadifeli.com/fedon/stdcprtr.php?4

Sonra da kesmelerle ilgi internette biraz araştırmak yapmak
iyi fikir olacaktır...
Olan olmuştur,
olacak olan da olmuştur.
Olacak bir şey yoktur.
---------------------------------------------
http://www.mehmetbilgi.net.tr
https://creativecommons.org/licenses/by/4.0/deed.tr "CC BY"

Burak B

CCS Standartlar ile uyumluluğu açısından çok tasvip ettiğim bir derleyici değil ancak genel olarak C ile embedded kod yazıyorsanız aşağıdaki linkteki kurallara uymanızda fayda var.
http://www.barrgroup.com/Embedded-Systems/How-To/Bug-Killing-Standards-for-Embedded-C
"... a healthy dose of paranoia leads to better systems." Jack Ganssle

bnmdmbrk

Alıntı YapSoru sorarken sorunuzun açık olması gerekir. Fonsiyondan kastınızın" Kesme" ye ait olduğunu düşünüyorum. Kesme fonksiyonları için okuduğunuz kısıtlamalara uymaya çalışın.
sensör içinde portb.0(echo pini) kesmesini ve kesmeye ait fonksiyonu ...

Alıntı YapArkadaş benim anladığım kadarıyla, CCS C'de kesme işlemi de fonksiyon gibi göründüğü için,
kesme ile normal fonksiyon işlemini karıştırıyor.
Kesme oluştuğunda programın yöneldiği yerinde bir fonksiyon olduğunu düşünmüştüm. Düzelttiğin için sağol  :)

Alıntı YapCCS Standartlar ile uyumluluğu açısından çok tasvip ettiğim bir derleyici değil ancak genel olarak C ile embedded kod yazıyorsanız aşağıdaki linkteki kurallara uymanızda fayda var.
http://www.barrgroup.com/Embedded-Systems/How-To/Bug-Killing-Standards-for-Embedded-C
Sağolun yardımlarınız için :)

ferit06

Alıntı yapılan: bnmdmbrk - 12 Şubat 2015, 07:37:56
         Fakat bazı yerlerdeki yorumlarda fonksiyon içinde giriş çıkış işlemleri yapmayın, delay komutu kullanmayın gibi şeyler okudum.
       

bunu da demişsiniz....