Mplab c ile yeni çalışmalar yapmaya başladım. Hiç assembler kullanmadım! (bu bilginin belki soracağım soru ile alakası olabilir.) ccs c ile işimi gördüm şimdiye kadar , ama dspic'lerde yetersiz kaldığı konusunda bir negatif bir hava oluştu bende.
Velhasılıkelam Mplab ide ve c derleyici ile yola devam.
Portlar nasıl ifade edilmiş diye bakarken Karşıma Şunlar çıktı ;
TRISAbits.TRISA0 //Bunu biliyorum
PORTAbits.RA0 //Buda tamam
LATAbits.LATA0 //Bu ne abi?
ODCAbits.ODCA0//Peki Bu nedir acaba?
Dspic33f serisi bir pic'in header dosyasında portlarla ilgili tanımlamalara bakıyordum.
LATAbits.LATA0 //Bu ne abi?
PORTA = 0 yerine LATA = 0 şeklinde port atamaları yapılıyor. Neden port değilde LATch kullanıldığının nedeni ise porta yazıp hemen arkasından okumak istediğimizde, (yada tersi tam hatırlamıyorum) çeşitli nedenlerden dolayı pinin durumunun 25-30ns içerisinde değiştirememesi olasılığı gibi birşey..
ODCAbits.ODCA0 ise ODCA registerinin içerisinde tanımlanmış bir veya birkaç bitlik, bit bloğu ...
ODC'ler de o bacağı open collector çıkış yapıyor. Tabi ilgili TRIS 0 olacak, yoksa zaten çıkış olmaz.
LAT register'larının neden gerekli olduğu daha önce forumda sorulmuş ve cevaplanmıştı.