Bir PIC18F46K22’ye sahibim ve XC8 derleyicisiyle programladım. Sonunda, stdinve ile bir pc gibi bir sisteme sahip olacağım stdout. Böylece ana döngüde yeni giriş olup olmadığını kontrol eden bir fonksiyon olacaktır. Girdi varsa, buna göre bir işlev çağrılır. Mesela bir A girişi yaptığımda stdin, PIC bir B girdiğimde function_Abunun yerine function_Bçağrılan gibi bir işlevi çalıştıracaktır .
PIC işlevi ile yapıldığında, yeni girişin işleve gönderilmesini istiyorum. Böylece A düğmesine basıldığında RS232 vericisi açılır, o andan itibaren her giriş RS232 üzerinden gönderilir. Sonunda proje tek başına bir metin editörüdür. Böylece, A düğmesine basıldığında dosya sistemi açılır, o andan itibaren artık metin düzenlemesi yapmıyorsunuz ancak dosya listesine bakıyorsunuz. Bu, Yukarı ve Aşağı tuşlarına basmanın, metin düzenleme ortamından farklı bir şey anlamına gelir.
Bunu C dilinde nasıl programlayacağımı çok düşündüm. Dün gece bunu düşündüm ve mümkün olup olmadığını ve eğer öyleyse nasıl olduğunu bilmek istiyorum. Yapmak istediğim şey:
mainFonksiyon gibi bir işlevi çağırırfunction_Afunction_Aglobal değişkenifunction_addrfonksiyonun adres işaretçisine değiştiririn_function_A- O andan itibaren, yeni giriş olduğunda
mainişlevi çağırırfunction_addr.
Yani ihtiyacım mainolan function_addrşey sıfır olup olmadığını kontrol eden bir fonksiyon . Eğer öyleyse, 'normal' bir işlev çağrılmalıdır function_A. Değilse, işlevinin function_addrçağrılması gerekir. Ayrıca bir ihtiyaç function_Adeğiştirir function_addriçin bir işaretçi in_function_A.
Not: dosya sistemi işlevi kapatıldığında, is_function_Asadece function_addr0 olarak değiştirilmelidir .
Yani temelde sorum şu: nasıl yapabilirim
- Bir işlevin adresini al (ve değişkende sakla)
- Belirtilen adreste bir işlev çağırın