<meter id="pryje"><nav id="pryje"><delect id="pryje"></delect></nav></meter>
          <label id="pryje"></label>

          新聞中心

          EEPW首頁(yè) > 嵌入式系統(tǒng) > 設(shè)計(jì)應(yīng)用 > MSP430 5438 單片機(jī)學(xué)習(xí)筆記

          MSP430 5438 單片機(jī)學(xué)習(xí)筆記

          作者: 時(shí)間:2016-11-25 來(lái)源:網(wǎng)絡(luò) 收藏
          通過(guò)430一年的學(xué)習(xí)遇到的很多問(wèn)題,也收獲了很多,以下是學(xué)習(xí)中遇到的一些問(wèn)題,和解決方法,還有很多沒(méi)有整理出來(lái),慢慢整理中。。。。

          一、多源中斷問(wèn)題
          #pragma vector = PORT2_VECTOR
          __interrupt void port2(void)
          {
          switch(P2IV)
          {
          case P2IV_P2IFG6:
          P2IFG &=~BIT6;
          P1OUT ^= BIT0;break; //LED1 亮滅
          case P2IV_P2IFG7:
          P2IFG &=~BIT7;
          P1OUT ^= BIT1;break; //LED2 亮滅
          default :break;
          }

          本文引用地址:http://www.ex-cimer.com/article/201611/321217.htm

          }


          #pragma vector = PORT2_VECTOR
          __interrupt void port2(void)
          {
          if(P1IFG&BIT6){
          P2IFG &=~BIT6;
          }
          if(P1IFG&BIT7){
          P2IFG &=~BIT7;
          }

          }

          這兩種方法有說(shuō)明不同嗎?上面一種是通過(guò)向量中斷號(hào)進(jìn)行判斷,下面是用中斷標(biāo)志進(jìn)行判斷,在上面的判斷中是否需要用軟件把中斷標(biāo)志清0

          二、關(guān)于flash的塊擦除
          void Seg_Erase(void){
          _DINT();
          WDTCTL = WDTPW + WDTHOLD;
          char *flase_erase;
          flase_erase = (char *)0x8000; //指向要檫寫的段地址
          while(FCTL3&BUSY);
          FCTL3 = FWKEY; //清除LOCK
          FCTL1 = FWKEY +ERASE; //段檫除
          *flase_erase = 0; //空寫將0寫為1
          FCTL3 = FWKEY + LOCK; //LOCK置1
          _EINT();
          }
          請(qǐng)問(wèn)在進(jìn)行FLASH段擦除的時(shí)候,調(diào)用這個(gè)函數(shù)是只擦除一個(gè)字節(jié)?要進(jìn)行整段擦除的時(shí)候是用for語(yǔ)句調(diào)這個(gè)函數(shù)128次。
          還是調(diào)用一次這個(gè)函數(shù)把128個(gè)字節(jié)一起擦除。

          三、_root問(wèn)題
          當(dāng)編譯器碰到該條指令的時(shí)候就把它進(jìn)行編譯。

          四、關(guān)于MSP430的中斷嵌套,和優(yōu)先級(jí)問(wèn)題?

          五、msp430沒(méi)有自帶的EEPROM,但是information ABCD四個(gè)塊相當(dāng)于EEPROM在5系列中他們的地址分別是
          A:001800H~00187fH
          B:001880H~0018FFH
          C: 001900H~00197FH
          D: 001980H~0019FFH

          六、硬件乘法器
          MPY = 125;
          OP2 = 125;
          result = RESHI;
          result = (result<<16)|RESLO;

          result=125*125;

          這兩個(gè)編譯的效率哪個(gè)更加高一點(diǎn),result=125*125編譯器會(huì)不會(huì)直接把它編譯成
          MPY = 125;
          OP2 = 125;
          result = RESHI;
          result = (result<<16)|RESLO;
          使用硬件乘法器去算這個(gè)值。

          七、關(guān)于內(nèi)存的問(wèn)題
          我在用MSP5438片子求1024點(diǎn)FFT的時(shí)候,定義
          float dataR[1024]={0};
          float dataI[1024]={0};在RAN區(qū)

          定義正余弦表在flash程序存儲(chǔ)器里
          const float sin_tab[1024]={.....};
          const float cos_tab[1024]={.....};
          做軟仿的時(shí)候可以計(jì)算,用JTAG往片子里下的時(shí)候就不行,觀察RAM區(qū)時(shí)候發(fā)現(xiàn),是定義的const float sin_tab[1024]
          const float cos_tab[1024]本應(yīng)該在flash區(qū)的數(shù)據(jù),怎么會(huì)出現(xiàn)在RAM區(qū)里?導(dǎo)致不能進(jìn)行仿真。
          編譯以后這里看所消耗的資源應(yīng)該是可以的承受的。
          892 bytes of CODE memory
          8194 bytes of CONST memory
          8194 bytes of DATA memory
          我是第一次用430的片子,有些問(wèn)題不太明白,望各位大蝦不吝賜教。謝了。


          上一頁(yè) 1 2 下一頁(yè)

          評(píng)論


          技術(shù)專區(qū)

          關(guān)閉
          看屁屁www成人影院,亚洲人妻成人图片,亚洲精品成人午夜在线,日韩在线 欧美成人 (function(){ var bp = document.createElement('script'); var curProtocol = window.location.protocol.split(':')[0]; if (curProtocol === 'https') { bp.src = 'https://zz.bdstatic.com/linksubmit/push.js'; } else { bp.src = 'http://push.zhanzhang.baidu.com/push.js'; } var s = document.getElementsByTagName("script")[0]; s.parentNode.insertBefore(bp, s); })();