找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

搜索
查看: 2076|回復(fù): 7
收起左側(cè)

請問PIC單片機整數(shù)判別是不是不能大于255?

[復(fù)制鏈接]
ID:769545 發(fā)表于 2022-6-25 11:34 | 顯示全部樓層 |閱讀模式
unsigned char sbstatus @ 0x23;
bit volatile ADCY@((unsigned)&sbstatus*8+0;

unsigned short  YEAR;
ADCY=0;

for(;;)
{

  SEC=SEC+1;
   if(SEC>=2020)
   ADCY=1;

}



請教一下大神們:unsigned short  YEAR;改為unsigned char  YEAR;就可以編譯通過,是不是比較的數(shù)據(jù)只能用一個8位數(shù)據(jù)?用16位的數(shù)據(jù)是不可以直接比較的。我用PICC9.86編譯
回復(fù)

使用道具 舉報

ID:301191 發(fā)表于 2022-6-25 23:57 | 顯示全部樓層
頂一下
回復(fù)

使用道具 舉報

ID:883242 發(fā)表于 2022-6-26 00:11 | 顯示全部樓層
這就不是單片機的問題,而是編譯器的問題,只能查編譯器手冊。

另外,PIC16系列單片機在設(shè)計之初就沒想到過用什么高級語言,而是用最少的晶體管數(shù)量實現(xiàn)全部功能。所以這種單片機c語言編譯器生成的機器碼慘不忍睹,比51這種過時結(jié)構(gòu)還要爛。反正規(guī)模都不大,還不如直接上匯編。
回復(fù)

使用道具 舉報

ID:401564 發(fā)表于 2022-6-26 17:09 | 顯示全部樓層
沒看出YEAR跟比較有什么關(guān)系呀
個人感覺是你自己的問題,代碼不全看不出什么問題
畢竟,一個再垃圾的編譯器,它也不至于比較大小都干不了的吧
回復(fù)

使用道具 舉報

ID:962286 發(fā)表于 2022-6-27 10:58 | 顯示全部樓層
PIC的任何系列和對應(yīng)任何C編譯器,都支持16bit(unsigned short)的加減乘除和邏輯判斷。另外,如果是PIC10F/PIC12F/PIC16F的C編譯器,HI-TECH PICC最后一個版本是9.83(9.84有個bate版),而后面已經(jīng)改名成XC8了(PIC收購HI-TECH蠻雞賊的)。
PS:HI-TECH PICC或者XC8的PRO版(收費)編譯出來的機器碼效率相當(dāng)高,Lite版就效率低得多了,不過好像一直有把PRO版弄出來。

評分

參與人數(shù) 1黑幣 +20 收起 理由
admin + 20 回帖助人的獎勵!

查看全部評分

回復(fù)

使用道具 舉報

ID:130230 發(fā)表于 2022-6-28 14:59 | 顯示全部樓層
你倒是把編譯報錯的內(nèi)容貼出來啊。。
回復(fù)

使用道具 舉報

ID:195496 發(fā)表于 2022-6-28 17:53 | 顯示全部樓層
數(shù)據(jù)類型有關(guān)系,你還沒有搞明白?
回復(fù)

使用道具 舉報

ID:769545 發(fā)表于 2022-6-30 12:45 | 顯示全部樓層
Y_G_G 發(fā)表于 2022-6-26 17:09
沒看出YEAR跟比較有什么關(guān)系呀
個人感覺是你自己的問題,代碼不全看不出什么問題
畢竟,一個再垃圾的編譯器 ...


unsigned char sbstatus @ 0x23;
bit volatile ADCY@((unsigned)&sbstatus*8+0;

unsigned short  YEAR;
ADCY=0;

for(;;)
{

  YERA=YEAR+1;
   if(YEAR>=2020)
   ADCY=1;

}
回復(fù)

使用道具 舉報

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

本版積分規(guī)則

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

Powered by 單片機教程網(wǎng)

快速回復(fù) 返回頂部 返回列表