久久久久久久999_99精品久久精品一区二区爱城_成人欧美一区二区三区在线播放_国产精品日本一区二区不卡视频_国产午夜视频_欧美精品在线观看免费

 找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

搜索
查看: 4580|回復: 0
收起左側

MSP430狀態寄存器SR的使用實驗及小結

[復制鏈接]
ID:282850 發表于 2020-3-19 17:22 | 顯示全部樓層 |閱讀模式
研究LCD128128驅動程序時,看到一個語句LCD_SDA = CY; 當時明白C51中CY是進位標志,這種寫法有點意思,好象很簡潔。原程序見下:
//傳送指令
voidtransfer_command_lcd(unsigned char cmd)
{
      int k;
      LCD_CS = 0;
      LCD_RS= 0;
      for (k=0; k<8; k++)
      {
            cmd = cmd<<1;
            LCD_SCL = 0;
            LCD_SDA = CY;
            LCD_SCL = 1;
      }
      LCD_CS=1;
}
因為要用MSP430驅動,很多語句要改,這個CY也估計要改。查msp430的h文件,是用C代替CY,但感覺不對。改完其它語句后,來實測這MSP430狀態存器STATUS REGISTER BITS(SR)這個C是否能正常使用。
找到的SR定義及說明僅有如下的內容:
狀態寄存器SR的位定義:
   
15                9  
  
8
7
6
5
4
3
2
1
0
保留未使用
V
SCG1
SCG0
OSCOFF
CPUOFF
GIE
N
Z
C
  C  :進位標志位,發生進位時置1
Z  :零位
N  :負數位
GIE   :通用中斷允許位,1開全部中斷,0關全部中斷。
CPUOFF :CPU關閉位,既除RAM內容,端口、寄存器和特別允許的外圍模塊保持活動外,全部停止活動,所有允許的中斷可以喚醒。
OSCOFF   :晶震關閉位,既除RAM內容,端口和寄存器保持活動外,全部活動停止,只可能在GIE置位條件下有外部中斷或由NMI喚醒,如果不同時對CPUOFF置位,則不能對它置位;
SCG0/1     :系統時鐘發生器控制位0和1,控制系統時鐘發生器的4種狀態;
V  :溢出位,當運算結果超出有符號數范圍時置位,對字和字節格式均有效。

原來知道并使用的設置和清除SR的指令是bis、bic,見下例:
__bis_SR_register(LPM0_bits);
__bis_SR_register(LPM2_bits);
__bic_SR_register_on_exit(LPM2_bits);
先測試if(C)這樣的寫法,編譯執行沒有問題,但C每次==1,error。原因是C僅僅是BIT0定義,不指定是誰的bit0,一直==1,并非指向SR地址。
當然原來常用的寫法是if(data &0x80) ...;高位先,傳完一次再前移1位。
找SR的地址,不知道,后找到個函數。
__get_SR_register();
__get_SR_register_on_exit();
最初想到的作用:
1、如本文的作用,取C、Z、N的值等;
2、判斷CPU狀態,如晶振是否正常,是在哪種LPM(LPM0、1、2、3),但不能用于LPM4(CPU全停,只有外部中斷可喚醒)。
3、其它作用,暫不知。
順便測試了一下網上找到的“  C  :進位標志位,發生進位時置1”這話的意思,描述對不對?中間有進位時,是否置1?測試結果:如0001+1=0010,C為0,重復加一直為0!只有0xff+1時才C==1,OK,測試完成。這話的描述有岐義!
總結:
1、使用SRC=__get_SR_register()&C;if(SRC)...;與使用if(aa&0x80)...;需注意及關注的重點是,前者先在取值前data<<=1;移位(數據破壞),后者在判斷完MSB(最高位)后才data<<=1;移位(數據破壞)。
2、讀取SR相對復雜,沒有多少好處,語句多,稍不注意有可能出錯。不如用&0x80來的方便,16位的則用&0x8000,也很方便直觀。
3、對各種編譯器而言,后的兼容性更好。所以大部分程序中和人員常用0x80這個很強悍的數。
如果反響好,改天上貼,再寫液晶驅動調試的艱難歷程及UC1617s的驅動程序。

SR的定義僅是位,與BIT一樣,無SR的定義

SR的定義僅是位,與BIT一樣,無SR的定義

讀SR的C位成功交換數據

讀SR的C位成功交換數據

錯誤的做法

錯誤的做法

狀態寄存器 實驗.zip

21.88 KB, 下載次數: 6, 下載積分: 黑幣 -5

評分

參與人數 1黑幣 +50 收起 理由
admin + 50 共享資料的黑幣獎勵!

查看全部評分

回復

使用道具 舉報

您需要登錄后才可以回帖 登錄 | 立即注冊

本版積分規則

小黑屋|51黑電子論壇 |51黑電子論壇6群 QQ 管理員QQ:125739409;技術交流QQ群281945664

Powered by 單片機教程網

快速回復 返回頂部 返回列表
主站蜘蛛池模板: 综合久久99 | 久久九九免费 | 国产精品一区2区 | 亚洲毛片在线观看 | 看真人视频一级毛片 | 免费看国产一级特黄aaaa大片 | 黄色成人在线观看 | h片在线观看网站 | 欧美日韩久久久久 | 国产一区二区三区色淫影院 | 成人av电影在线 | 精品影院| 天堂资源最新在线 | 精品国产黄色片 | 久久黄色精品视频 | 久久福利电影 | 亚洲天天| 国产精品久久国产精品99 gif | 91精品国产综合久久精品 | 国产一区二区电影 | 妞干网视频 | 精品久久国产 | 久久久久精 | 欧洲亚洲一区 | 亚洲一区视频 | 精品国产乱码久久久久久88av | 欧美在线观看一区 | 久久一二 | 亚洲成人av | 超碰精品在线 | 亚洲天天干 | 蜜桃色网| 久久在线看 | 日韩一区二区三区av | 久久久性| 一级毛片免费 | 亚洲一av| 国产精品一区二区久久久久 | 欧美日韩国产精品一区二区 | 在线播放中文字幕 | 久久国产精品一区二区三区 |