0
  • 聊天消息
  • 系統(tǒng)消息
  • 評論與回復(fù)
登錄后你可以
  • 下載海量資料
  • 學(xué)習(xí)在線課程
  • 觀看技術(shù)視頻
  • 寫文章/發(fā)帖/加入社區(qū)
會員中心
創(chuàng)作中心

完善資料讓更多小伙伴認(rèn)識你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示

MINI-C函數(shù)可以帶參數(shù)了

應(yīng)廣單片機(jī) ? 來源:應(yīng)廣單片機(jī) ? 2023-07-19 14:01 ? 次閱讀

雖然MINI-C,函數(shù)可以帶參數(shù)的功能已經(jīng)開放了一陣子了,但是很多工程師朋友的思維還是停留在MINI-C函數(shù)不能帶參數(shù)的階段。能帶參數(shù),和普通C的程序兼容性更強(qiáng)了。希望大家都留意一下,看編譯通過,是不是心情一下美麗了很多。

12a86dd0-25ec-11ee-962d-dac502259ad0.png

附一個IDE下面的程序?qū)嵗?,“PADAUK Tool/0.98x/demo/EE_RW”, 該程序?qū)嵗轻槍GS152的EEPROM的讀寫操作的。請參考:

//Fail :EERMC.Time_Out ??

voidEE_W (WORD adr, BYTE data)

{

BYTEbuffer [8];

@@:ldeeradr;

.wait0EERMC.Busy;

if (EERL == data)return;//如果資料相同,則結(jié)束

#if_SYS(AT_CHIP)

A=~ EERL & data;

if (ZF)

{//可以覆燒

EERL=data;

while (1)

{

Do_Program (adr);

.wait0EERMC.Busy;

if (EERMC.Time_Out){

IHRC_EPM = 0x34;

continue;//重?zé)綄榇??

}

IHRC_EPM = 0x3F;

return;

}

}

#elif_SYS(AT_ISP_ICE)

if (EERL == 0xFF)//只有 0xFF 才能燒錄

{

EERL=data;

Do_Program (adr);

.wait0EERMC.Busy;

if (EERMC.Time_Out)

goto@B;//如果檢查相同就不用再重?zé)?/p>

return;

}

#else

A=~ EERL & data;

if (ZF)

{//可以覆燒

EERL=data;

while (1)

{

Do_Program (adr);

.wait0EERMC.Busy;

if (! EERMC.Time_Out)//重?zé)綄榇??

return;

}

}

#endif

WORDpnt1=adr & 0xFFF8;

WORDpnt2=buffer;

BYTEcnt=8;

do

{//備份 8 筆資料

ldeerpnt1;

.wait0EERMC.Busy;

*pnt2=EERL;

pnt1$0++;pnt2$0++;

} while (--cnt);

pnt2$0=(adr & 7) + buffer;

*pnt2=data;//更新目的資料

//Erase 8 筆資料

@@:Do_Erase (adr);

cnt=8;

pnt1$0=adr & 0xF8;

pnt2$0=buffer;

.wait0EERMC.Busy;

#if_SYS(AT_CHIP)

if (EERMC.Time_Out)

{

IHRC_EPM = 0x34;

goto @B;

}

IHRC_EPM = 0x3F;

#else

if (EERMC.Time_Out)

goto @B;

#endif

Setup_ProgramMode;

while (1)

{//寫入 8 筆資料

EERL=*pnt2;

Run_Program (pnt1);

.wait0EERMC.Busy;

#if_SYS(AT_CHIP)

if (EERMC.Time_Out)

{

IHRC_EPM = 0x34;

ldeerpnt1;

.wait0EERMC.Busy;

data=*pnt2;

A=~ EERL & data;

if (ZF)continue;

goto@B;

}

IHRC_EPM = 0x3F;

#else

if (EERMC.Time_Out)

continue;

#endif

pnt1$0++;pnt2$0++;

if (!--cnt)return;

}

}

voidEE_R (WORD adr)

{

ldeeradr;

.wait0EERMC.Busy;

A=EERL;

}

//#if_SYS(AT_ISP_ICE)

//.ICE_CMDVoltage4V

//#endif

voidFPPA0 (void)

{

.ADJUST_ICSYSCLK=IHRC/4, VDD=4V;//SYSCLK=IHRC/4

//4V 似乎對 ISP ICE 比較容易寫入

EEPROM_Initial

while (1)

{

WORDadr=0;

BYTEdata;

data=0xFF;

do

{//測試逐一寫 Bit 為 0

data>>=1;

EE_W (adr, data);

EE_R (adr);

} while (data);

adr=0;

data=adr$0 ^ 0x55;

BYTEcnt=_SYS(SIZE.EEPROM);

do

{//全部寫亂碼

EE_W (adr, data);

adr++;data--;

} while (--cnt);

trap;

adr=0;

data=adr$0 ^ 0x55;

cnt=_SYS(SIZE.EEPROM);

do

{//測試是否為亂碼

EE_R (adr);

if (A != data)trap;

adr++;data--;

} while (--cnt);

trap;

}

}

voidInterrupt (void)

{

pushaf;

if (Intrq.T16)

{//T16 Trig

//User can add code

Intrq.T16=0;

//...

}

popaf;

}

審核編輯:湯梓紅

聲明:本文內(nèi)容及配圖由入駐作者撰寫或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點(diǎn)僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問題,請聯(lián)系本站處理。 舉報投訴
  • 參數(shù)
    +關(guān)注

    關(guān)注

    11

    文章

    1661

    瀏覽量

    31877
  • EEPROM
    +關(guān)注

    關(guān)注

    9

    文章

    1002

    瀏覽量

    81061
  • 程序
    +關(guān)注

    關(guān)注

    115

    文章

    3720

    瀏覽量

    80358
  • 編譯
    +關(guān)注

    關(guān)注

    0

    文章

    646

    瀏覽量

    32671

原文標(biāo)題:MINI-C函數(shù)可以帶參數(shù)了!

文章出處:【微信號:應(yīng)廣單片機(jī),微信公眾號:應(yīng)廣單片機(jī)】歡迎添加關(guān)注!文章轉(zhuǎn)載請注明出處。

收藏 人收藏

    評論

    相關(guān)推薦

    可變參數(shù)函數(shù)的實(shí)現(xiàn)原理

    有多少個參數(shù)呢?那些可變的參數(shù)是需要轉(zhuǎn)換成第一個參數(shù)中%號后面的格式的,這樣,我們只需要查找%號的個數(shù)確定可變參數(shù)的個數(shù)了。圖 43 可變
    發(fā)表于 10-21 22:18

    用的是STC89C51,編程就不知道該怎么寫了函數(shù)了

    第一次用LCD1602,畫PCB時,為了焊接接線方便,就把LCD的D0-D7口分別接到了P2.7-P2.0,我用的是STC89C51,接線的時候也沒想太多,覺得這個軟件肯定是能改的,現(xiàn)在編程就不知道該怎么寫了函數(shù)了,希望高手能幫助解決這個問題。
    發(fā)表于 05-18 01:49

    一、應(yīng)廣單片機(jī)的Mini-C語言基礎(chǔ) 精選資料分享

    開發(fā)的人,用匯編來開發(fā)還是有些抗拒的??戳艘幌潞喗椋瑧?yīng)廣單片機(jī)支持Mini-C語言,一看就跟C語言有關(guān),我們來了解一下:二、Mini-C介紹 應(yīng)廣科技的MINI-C語法結(jié)構(gòu),是一種..
    發(fā)表于 07-15 09:04

    mini-c的缺點(diǎn)及解決辦法

    很多廉價的單片機(jī)只是支持匯編語言,而應(yīng)廣的單片機(jī)支持mini-c,非常不錯!可以最大限度發(fā)揮C的優(yōu)勢和編譯器的效率.下面我就說說我的體會:缺點(diǎn):函數(shù)不能帶
    發(fā)表于 07-20 07:14

    指針作為函數(shù)參數(shù)

    指針作為函數(shù)參數(shù) 大多數(shù)C程序員開始使用指針時是用它們實(shí)現(xiàn)函數(shù)參數(shù),所謂可變參數(shù)。為了理解可
    發(fā)表于 07-29 11:49 ?2678次閱讀

    C語言中形式參數(shù)和實(shí)際參數(shù)的介紹

    C語言函數(shù)參數(shù)的傳遞和值返回 實(shí)際程序中,我們經(jīng)常使用到參數(shù)有返回值的函數(shù)。 一、
    發(fā)表于 11-21 11:25 ?6次下載

    形狀參數(shù)的曲線曲面的構(gòu)造

    為了更加方便地表示和修改曲線曲面,提出了形狀參數(shù)的四次三角Bezier曲線曲面QTBezier的構(gòu)造方法和應(yīng)用。首先仿照Bezier曲線性質(zhì),構(gòu)造了形狀參數(shù)的基
    發(fā)表于 12-05 18:09 ?0次下載

    嵌入式C語言可以“默認(rèn)參數(shù)”的函數(shù)

    使用C++開發(fā)過程序時,定義函數(shù)可以指定默認(rèn)參數(shù),例如 void fun(int x, int y=3); 在調(diào)用 fun() 時第二個參數(shù)
    發(fā)表于 09-06 11:35 ?1358次閱讀
    嵌入式<b class='flag-5'>C</b>語言<b class='flag-5'>可以</b><b class='flag-5'>帶</b>“默認(rèn)<b class='flag-5'>參數(shù)</b>”的<b class='flag-5'>函數(shù)</b>嗎

    關(guān)于C++仿函數(shù)

    。再說為了復(fù)用這么一段代碼,就要單立出一個函數(shù),也不是很好維護(hù)。此時就可以用到仿函數(shù)了。 以下是正文 引入仿函數(shù)(functor)原因 先考慮一個簡單的例子:假設(shè)有一個vector《s
    的頭像 發(fā)表于 10-23 15:28 ?1255次閱讀

    應(yīng)廣單片機(jī)MINI-C編程要點(diǎn)

    很多廉價的單片機(jī)只是支持匯編語言,而應(yīng)廣的單片機(jī)支持mini-c,非常不錯!可以最大限度發(fā)揮C的優(yōu)勢和編譯器的效率.下面我就說說我的體會:缺點(diǎn):函數(shù)不能帶
    發(fā)表于 11-23 17:51 ?56次下載
    應(yīng)廣單片機(jī)<b class='flag-5'>MINI-C</b>編程要點(diǎn)

    C語言函數(shù)參數(shù)介紹

    C語言數(shù)組元素作函數(shù)實(shí)參 數(shù)組元素可以用作函數(shù)實(shí)參,不能用作形參。 C語言在用數(shù)組元素作函數(shù)
    的頭像 發(fā)表于 03-10 14:30 ?2145次閱讀

    C++基礎(chǔ)知識之函數(shù)1

    函數(shù)C++ 中的一個重要概念,它可以讓我們將一段代碼封裝起來,然后在需要的時候調(diào)用它。C++ 中的函數(shù)有以下幾個特點(diǎn): *
    的頭像 發(fā)表于 04-03 10:34 ?460次閱讀

    c語言參數(shù)的宏定義

    c語言參數(shù)的宏定義? C語言宏定義是一種宏替換機(jī)制,它可以將一個標(biāo)識符替換為一個代碼片段。宏定義通常在程序中用來方便地進(jìn)行常量定義或
    的頭像 發(fā)表于 09-04 17:45 ?2229次閱讀

    應(yīng)廣單片機(jī)MINI-C編程要點(diǎn)

    的效率一般很低啦。我這里給大家分享一個簡單的加3移位判斷法,這個子程序,體現(xiàn)了MINI-C的強(qiáng)大C語言和匯編融合處理能力。也將MINI-C的數(shù)據(jù)指針用到恰到好處啦,有點(diǎn)自賣自夸。
    的頭像 發(fā)表于 10-17 14:17 ?1104次閱讀

    c語言gets函數(shù)可以輸入數(shù)字嗎

    來了解一些與輸入有關(guān)的C語言函數(shù)。C語言提供了許多函數(shù)來從用戶獲取輸入,包括scanf、fgets和gets等。 scanf函數(shù)
    的頭像 發(fā)表于 11-24 10:00 ?1064次閱讀