最新免费av在线观看,亚洲综合一区成人在线,中文字幕精品无码一区二区三区,中文人妻av高清一区二区,中文字幕乱偷无码av先锋

登錄 免費注冊 首頁 | 行業(yè)黑名單 | 幫助
維庫電子市場網(wǎng)
技術(shù)交流 | 電路欣賞 | 工控天地 | 數(shù)字廣電 | 通信技術(shù) | 電源技術(shù) | 測控之家 | EMC技術(shù) | ARM技術(shù) | EDA技術(shù) | PCB技術(shù) | 嵌入式系統(tǒng)
驅(qū)動編程 | 集成電路 | 器件替換 | 模擬技術(shù) | 新手園地 | 單 片 機 | DSP技術(shù) | MCU技術(shù) | IC 設(shè)計 | IC 產(chǎn)業(yè) | CAN-bus/DeviceNe

picc中不支持位變量定義么?

作者:formulaone 欄目:單片機
picc中不支持位變量定義么?
我在程序中 定義的
bit flag;
編譯后說句法錯誤。
不知道怎么回事?
那位大蝦幫忙解釋一下。


2樓: >>參與討論
systemchip
可以這樣定義
也可以定義一個結(jié)構(gòu)體。把你的程序貼出來看看

3樓: >>參與討論
formulaone
程序片斷
#include<p30f2012.h>
   .
   .
   .
bit flag;
   .
   .
   .
int main(void)
{
   .
   .
   .
  if (flag)
   {
    ...
    }
   .
   .
   .
}

4樓: >>參與討論
systemchip
你用的是HI TECH的dsPICC嗎?
 
5樓: >>參與討論
child_hood
沒定義bank
bank1 bit flag

6樓: >>參與討論
afanti
re
你用的是picc還是dspicc?

在picc中是允許這樣定義的,只是bit變量只能定義為全局變量或者是靜態(tài)變量,不能是局部變量。

7樓: >>參與討論
picexpert
static bit 就可以了
static bit 就可以了

8樓: >>參與討論
formulaone
可能是編譯器版本的問題。
static bit 我試了,不行。
bank bit flag 我沒使,不知道行不行。
今天我看到資料說dspicC不支持位定義。只好用結(jié)構(gòu)體了。謝了各位。
我再問個問題。我的mplab中的watch窗口看不了變量。不知道為什么?

9樓: >>參與討論
formulaone
程序清單
/**********************************************************************
* Filename: main.c *
* Date: 11/14/2005 *
* File Version: 1.00 *
* Tools used: MPLAB -> 7.22 *
* Compiler ->  C30*
* Assembler ->  *
* Linker ->  *
* Linker File: p30f2012.gld *
*由 c51 的程序 開始 修改。
*調(diào)試筆記:
*20051216 在調(diào)試AD模塊時,發(fā)現(xiàn)不能在watch窗口觀察 advalue, times, tem, mea 的值,說是Restricted MEMORY.不知道是

什么原因。因此將此段程序上傳。請求幫助解決。查找原因。
***********************************************************************/
/**********************************************************************
*頭文件
*/
#include <p30f2012.h>        //DSPIC30F2012的配置頭文件;
#include <math.h>            //數(shù)學(xué)函數(shù)頭文件,本程序應(yīng)用asin函數(shù);
/**********************************************************************
*定義CONFIG字
*/
_FOSC(CSW_FSCM_OFF & FRC & FRC_PLL4);   //配置時鐘為 內(nèi)部 振蕩器;
_FWDT(WDT_OFF);                         //關(guān)閉看門狗;
_FBORPOR(MCLR_EN & PWRT_OFF);       //外部MCLR上電復(fù)位  ;
_FGS(CODE_PROT_OFF);  //關(guān)閉代碼保護;
/*********************************************************************
*定義常量
*/
#define pi 3.1415926535897932384626433832795  //定義  pi
#define con_ch 1                //定義ad的通道1
#define tem_ch 0                //定義ad的通道2
/*********************************************************************
*端口定義
*/


/*********************************************************************
*變量定義
*/
unsigned LONG times;                //系統(tǒng)時間變量,單位為10ms
volatile unsigned int tem;               //溫度變量 , ************************************原函數(shù)為float型

*****************
volatile unsigned int mea;               //光敏傳感器變量,************************************原函數(shù)為float型

*****************
volatile unsigned CHAR ledbuf[4]={0x80,0x80,0x80,0x80}; //顯示緩存數(shù)組
unsigned int advalue[16]={0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0};                //16個ad連續(xù)采樣值的緩存變量
volatile unsigned int *ptr;

/********************************************************************
*定義函數(shù)
*/
int main(void);
void ADC_Init(void);                                     //ad轉(zhuǎn)換子程序
void __attribute__((__interrupt__)) _ADCInterrupt(void);     //中斷服務(wù)程序 ISR
/********************************************************************
*主函數(shù)
*/
int main(void)
{
   ADPCFG = 0xffff;   //設(shè)置AN腳為數(shù)字端口模式.
   ADC_Init();
   ADCON1bits.ADON=1;
   while(1)
   {
       Sleep();
    }    
   return 0;
}
/*********************************************************************
*子函數(shù)區(qū)
*/

//設(shè)置ad模塊初始化參數(shù)子函數(shù)
//設(shè)置ad工作在自動采樣自動轉(zhuǎn)換模式
//設(shè)置ad模塊每采樣轉(zhuǎn)換16次以后中斷
//ad轉(zhuǎn)換結(jié)果格式為無符號整數(shù)
//ad的參考電壓為Vdd和AGND
//ad的時鐘為內(nèi)部RC時鐘1.5us
//采樣時間為7個Tad
//模擬輸入引腳AN1,AN0分別作為濃度、溫度模擬信號的輸入端口。首先將AN1作為ad的默認(rèn)輸入端口
void ADC_Init()
{
  //adcon1 控制字的設(shè)置
  //設(shè)置ad轉(zhuǎn)換結(jié)果的格式 (DOUT = 0000 dddd dddd dddd)
  //設(shè)置ad的轉(zhuǎn)換觸發(fā)源為  內(nèi)部計數(shù)器結(jié)束采樣并開始轉(zhuǎn)換(自動轉(zhuǎn)換)
  //設(shè)置ad的采樣觸發(fā)源為  采樣在上一個轉(zhuǎn)換結(jié)束后立即開始。SAMP 位自動置位。
  ADCON1bits.FORM = 0;                         
  ADCON1bits.SSRC = 7;                         
  ADCON1bits.ASAM = 1;                         

  //adcon2 控制字的設(shè)置
  //VCFG=0; AD模擬電源設(shè)置為Vdd和AGND 參見dspicref的18-6頁
  //SMPI=15; 設(shè)置ad產(chǎn)生中斷的采樣轉(zhuǎn)換次數(shù)
  ADCON2bits.SMPI = 15;                        
  
  //adcon3 控制字的設(shè)置
  //ADRC=1; 設(shè)置 ad時鐘由ad內(nèi)部RC時鐘產(chǎn)生     rc=1.5us
  //SAMC=1; 設(shè)置 采樣時間為7個Tad                
  ADCON3bits.ADRC = 1;                  
  ADCON3bits.SAMC = 1;       
  
  //adchs  控制字的設(shè)置
  //設(shè)置 ad通道0 負(fù)輸入是VREFbit  ;通道0 正輸入是AN1
  ADCHS = con_ch;                        
  
  //adpcfg 控制字的設(shè)置
  //設(shè)置 模擬輸入引腳AN0、AN1為模擬輸入,其他為IO端口
  ADPCFG = 0xffff;
  ADPCFGbits.PCFG0 = 0;
  ADPCFGbits.PCFG1 = 0;                 
  
  //adcssl 控制字的設(shè)置
  //掃描模式被禁止。
  ADCSSL = 0x0000;      
      
  //清除ad中斷標(biāo)志位
  IFS0bits.ADIF = 0 ;
  
  //開ad中斷
  IEC0bits.ADIE = 1 ;    
}  

/*********************************************************************
*中斷服務(wù)程序ISR
*/
void __attribute__((__interrupt__)) _ADCInterrupt(void)
{
    int i = 0;
    ADCON1bits.ADON=0;
    ptr = &ADCBUF0;
    while ( i < 16 )
    {
        advalue[i++] = *ptr++;   
    }
    IFS0bits.ADIF = 0;
    ADCON1bits.ADON=1;
}
/********************************************************************/

參與討論
昵稱:
討論內(nèi)容:
 
 
相關(guān)帖子
常用PIC系列8位單片機芯片引腳符號的功能(轉(zhuǎn))
哪里有PIC16CE624的中文資料下?
請問哪位用過 Microchip CAN bootloader
I2C總死的問題
我要動態(tài)顯示單片機采集到的傳感器的信息,如何用圖形顯示?
免費注冊為維庫電子開發(fā)網(wǎng)會員,參與電子工程師社區(qū)討論,點此進入


Copyright © 1998-2006 udpf.com.cn 浙ICP證030469號