• slider image 442
  • slider image 483
  • slider image 484
  • slider image 485
  • slider image 486
  • slider image 487
:::


Browsing this Thread:   1 Anonymous Users






Re: 請問High-Tech如何宣告一個旗號在某個暫存器的位元內
#7
版主
版主


查看用戶資訊
bit 宣告是 Hi-Tech PICC 對位元的一種特定宣告用法,應屬於特定的專用語法,就這樣子用就是了。

發表於: 2006/5/8 18:01
Twitter Facebook Google Plus Linkedin Del.icio.us Digg Reddit Mr. Wong 頂部


Re: 請問High-Tech如何宣告一個旗號在某個暫存器的位元內
#6
資深會員
資深會員


查看用戶資訊
剛剛看了High-Tech標頭檔宣告方式試了一下,
可能在bank1後面加上"bit",這樣程式執行比較沒問題,
當然組譯是不會錯誤啦,但是不加bit程式執行怪怪的,不知為什麼?

unsigned char bank1 var1 @ 0xF0;

bank1 bit Flag0 @ (unsigned)&var1*8+7;
bank1 bit Flag1 @ (unsigned)&var1*8+6;
bank1 bit Flag2 @ (unsigned)&var1*8+5;
bank1 bit Flag3 @ (unsigned)&var1*8+4;
bank1 bit Flag4 @ (unsigned)&var1*8+3;
bank1 bit Flag5 @ (unsigned)&var1*8+2;
bank1 bit Flag6 @ (unsigned)&var1*8+1;
bank1 bit Flag7 @ (unsigned)&var1*8+0;

發表於: 2006/5/5 17:38
Twitter Facebook Google Plus Linkedin Del.icio.us Digg Reddit Mr. Wong 頂部


Re: 請問High-Tech如何宣告一個旗號在某個暫存器的位元內
#5
資深會員
資深會員


查看用戶資訊
原來是這樣宣告,謝謝,

發表於: 2006/5/5 14:55
Twitter Facebook Google Plus Linkedin Del.icio.us Digg Reddit Mr. Wong 頂部


Re: 請問High-Tech如何宣告一個旗號在某個暫存器的位元內
#4
版主
版主


查看用戶資訊
可以用bit + 決對位址 @的方式宣告單一位元:

unsigned char bank1 var1 @ 0xF0;

bank1 Flag0 @ (unsigned)&var1*8+7;
bank1 Flag1 @ (unsigned)&var1*8+6;
bank1 Flag2 @ (unsigned)&var1*8+5;
bank1 Flag3 @ (unsigned)&var1*8+4;
bank1 Flag4 @ (unsigned)&var1*8+3;
bank1 Flag5 @ (unsigned)&var1*8+2;
bank1 Flag6 @ (unsigned)&var1*8+1;
bank1 Flag7 @ (unsigned)&var1*8+0;

一般常用的方式可直接使用bit來宣告位元變數或採用位元結構方式比較方便簡單:

static bit Count_Flag ;
static bit Buzzer_1_Flag ;

Buzzer_1_Flag = 1 ;
if (Count_Flag) Count_Flag = 0 ;

發表於: 2006/5/5 12:03
Twitter Facebook Google Plus Linkedin Del.icio.us Digg Reddit Mr. Wong 頂部


Re: 請問High-Tech如何宣告一個旗號在某個暫存器的位元內
#3
資深會員
資深會員


查看用戶資訊
謝謝版主回覆,不過
unsigned char bank1 var1 @ 0xF0;
這樣的宣告是把var1這個變數定義在BANK1的0xF0的位址上,
而我想問的是如何分別定義var1的八個位元為不同的旗號變數,
謝謝。

發表於: 2006/5/5 11:23
Twitter Facebook Google Plus Linkedin Del.icio.us Digg Reddit Mr. Wong 頂部


Re: 請問High-Tech如何宣告一個旗號在某個暫存器的位元內
#2
版主
版主


查看用戶資訊
使用絕對定址的方式 @ 宣告變數位址,如果要指定方在哪一個BANK 可以用下列的方式達成:

unsigned char bank1 var1 @ 0xF0;
unsigned char bank1 var2 @ 0xF1;

發表於: 2006/5/5 11:00
Twitter Facebook Google Plus Linkedin Del.icio.us Digg Reddit Mr. Wong 頂部


請問High-Tech如何宣告一個旗號在某個暫存器的位元內
#1
資深會員
資深會員


查看用戶資訊
例如我宣告一個旗號暫存器變數FLAG在7f的位址:
unsigned char FLAG @ 0x7f;

再來我想宣告F0~F7這幾個位元變數,
分別為FLAG暫存器的bit0~bit7,
請問要如何宣告?

謝謝。

發表於: 2006/5/5 10:13
Twitter Facebook Google Plus Linkedin Del.icio.us Digg Reddit Mr. Wong 頂部







You can view topic.
不可以 發起新主題
You cannot reply to posts.
You cannot edit your posts.
You cannot delete your posts.
You cannot add new polls.
You cannot vote in polls.
You cannot attach files to posts.
You cannot post without approval.
You cannot use topic type.
You cannot use HTML syntax.
You cannot use signature.
You cannot create PDF files.
You cannot get print page.

[進階搜尋]


:::

Microchip連結

https://www.facebook.com/microchiptechnologytaiwan/
http://www.microchip.com.tw/modules/tad_uploader/index.php?of_cat_sn=13
https://mu.microchip.com/page/tmu
http://elearning.microchip.com.tw/modules/tad_link/index.php?cate_sn=1
https://page.microchip.com/APAC-PrefCenters-TW.html
http://www.microchip.com/
http://www.microchip.com/treelink
http://www.microchipdirect.com/
http://www.microchip.com.cn/newcommunity/index.php?m=Video&a=index&id=103
http://www.microchip.com.tw/modules/tad_uploader/index.php?of_cat_sn=2
http://www.microchip.com.tw/Data_CD/eLearning/index.html
http://www.microchip.com.tw/RTC/RTC_DVD/
https://www.microchip.com/development-tools/
https://www.youtube.com/user/MicrochipTechnology
[ more... ]

教育訓練中心

!開發工具購買
辦法說明 [業界客戶] [教育單位]
----------------------------------
!校園樣品申請
辦法說明 [教師資格] [學生資格]
----------------------------------