[問題] bit field struct 成員同時存取

作者: chrisos (克里斯)   2014-09-20 22:22:25
開發平台(Platform): (Ex: VC++, GCC, Linux, ...)
MPLAB
問題(Question):
我現在在進行PIC單晶片的學習,使用C語言與HI-TECH編譯器來開發。
我從我使用的晶片的header file (pic16f73.h) 裡看到他對於bit field的一些用法
譬如說一個PORTA的rigister掌握著六個I/O PIN (R0~R5)
他在header file裡面的定義是這樣
//
作者: jfcherng (小霹靂)   2014-09-20 23:07:00
難道是#define PORTA (*(unsigned char *)(&PORTA_bits))類似這樣 http://ideone.com/vaMOlW
作者: scwg ( )   2014-09-20 23:54:00
Aextern __sfr __at(PORTA_ADDR) PORTA; 用 linker 硬把PORT的位址設成跟 PORTA_bits 一樣...volatile __PORTA_bits_t __at(PORTA_ADDR) PORTA_bits;不想用 __at 的話就在 union 裡加一個 unsigned char 的欄位
作者: chrisos (克里斯)   2014-09-22 16:11:00
謝謝各位,後來經過提醒,發現是我沒清楚UNION的用法只要加上UNION的變數,就可利用這個變數對整個BYTE做修改謝謝各位的回答。

Links booklink

Contact Us: admin [ a t ] ucptt.com