å¦ä½ä¼åC++ç¨åºä»£ç ç¼å
第ä¸æï¼ä»¥ç©ºé´æ¢æ¶é´
计ç®æºç¨åºä¸æ大ççç¾æ¯ç©ºé´åæ¶é´ççç¾ï¼é£ä¹ï¼ä»è¿ä¸ªè§åº¦åºåéåæç»´æ¥èèç¨åºçæçé®é¢ï¼æ们就æäºè§£å³é®é¢ç第1æ--以空é´æ¢æ¶é´ãæ¯å¦è¯´å符串çèµå¼ï¼
æ¹æ³Aï¼é常çåæ³
#define LENchar string1 [LEN];
memset (string1,0,LEN);
strcpy (string1,"This is a example!!");
æ¹æ³Bï¼
const char string2[LEN] ="This is a example!";
char * cp;
cp = string2 ;
使ç¨çæ¶åå¯ä»¥ç´æ¥ç¨æéæ¥æä½ã
ä»ä¸é¢çä¾åå¯ä»¥çåºï¼AåBçæçæ¯ä¸è½æ¯çãå¨åæ ·çåå¨ç©ºé´ä¸ï¼Bç´æ¥ä½¿ç¨æéå°±å¯ä»¥æä½äºï¼èAéè¦è°ç¨ä¸¤ä¸ªå符å½æ°æè½å®æãBç缺ç¹å¨äºçµæ´»æ§æ²¡æA好ãå¨éè¦é¢ç¹æ´æ¹ä¸ä¸ªå符串å 容çæ¶åï¼Aå ·ææ´å¥½ççµæ´»æ§;å¦æéç¨æ¹æ³Bï¼åéè¦é¢å许å¤å符串ï¼è½ç¶å ç¨äºå¤§éçå åï¼ä½æ¯è·å¾äºç¨åºæ§è¡çé«æçã
å¦æç³»ç»çå®æ¶æ§è¦æ±å¾é«ï¼å åè¿æä¸äºï¼é£ææ¨èä½ ä½¿ç¨è¯¥ææ°ã
第äºæï¼ ä½¿ç¨å®èä¸æ¯å½æ°ãè¿ä¹æ¯ç¬¬ä¸æçåæãå½æ°åå®çåºå«å°±å¨äºï¼å®å ç¨äºå¤§éç空é´ï¼èå½æ°å ç¨äºæ¶é´ã大家è¦ç¥éçæ¯ï¼å½æ°è°ç¨æ¯è¦ä½¿ç¨ç³»ç»çæ æ¥ä¿åæ°æ®çï¼å¦æç¼è¯å¨éææ æ£æ¥é 项ï¼ä¸è¬å¨å½æ°ç头ä¼åµå ¥ä¸äºæ±ç¼è¯å¥å¯¹å½åæ è¿è¡æ£æ¥;åæ¶ï¼CPUä¹è¦å¨å½æ°è°ç¨æ¶ä¿ååæ¢å¤å½åçç°åºï¼è¿è¡åæ åå¼¹æ æä½ï¼æ以ï¼å½æ°è°ç¨éè¦ä¸ äºCPUæ¶é´ã èå®ä¸åå¨è¿ä¸ªé®é¢ãå®ä» ä» ä½ä¸ºé¢å å好ç代ç åµå ¥å°å½åç¨åºï¼ä¸ä¼äº§çå½æ°è°ç¨ï¼æä»¥ä» ä» æ¯å ç¨äºç©ºé´ï¼å¨é¢ç¹è°ç¨åä¸ä¸ªå®çæ¶åï¼è¯¥ç°è±¡å°¤å ¶çªåºã
举ä¾å¦ä¸ï¼
æ¹æ³Cï¼
#define bwMCDR2_ADDRESS 4#define bsMCDR2_ADDRESS
int BIT_MASK(int __bf)
{
return ((1U << (bw ## __bf)) - 1)<< (bs ## __bf);
}
void SET_BITS(int __dst,
int __bf, int __val)
{
__dst = ((__dst) & ~(BIT_MASK(__bf))) |
(((__val) << (bs ## __bf))
& (BIT_MASK(__bf))))
}
SET_BITS(MCDR2, MCDR2_ADDRESS,ReGISterNumber);
æ¹æ³Dï¼
#define bwMCDR2_ADDRESS 4#define bsMCDR2_ADDRESS
#define bmMCDR2_ADDRESS BIT_MASK(MCDR2_ADDRESS)
#define BIT_MASK(__bf)
(((1U << (bw ## __bf)) - 1)
<< (bs ## __bf))
#define SET_BITS(__dst, __bf, __val)
((__dst) = ((__dst) & ~(BIT_MASK(__bf)))
|
(((__val) << (bs ## __bf))
& (BIT_MASK(__bf))))
SET_BITS(MCDR2, MCDR2_ADDRESS,
RegisterNumber);
Dæ¹æ³æ¯æçå°çæ好çç½®ä½æä½å½æ°ï¼æ¯armå ¬å¸æºç çä¸é¨åï¼å¨çççä¸è¡å å®ç°äºå¾å¤åè½ï¼å ä¹æ¶µçäºææçä½æä½åè½ãCæ¹æ³æ¯å ¶åä½ï¼å ¶ä¸æ»å³è¿é大家ä»ç»ä½ä¼ã
第ä¸æï¼æ°å¦æ¹æ³è§£å³é®é¢
ç°å¨æ们æ¼ç»é«æCè¯è¨ç¼åç第äºæ--éç¨æ°å¦æ¹æ³æ¥è§£å³é®é¢ãæ°å¦æ¯è®¡ç®æºä¹æ¯ï¼æ²¡ææ°å¦çä¾æ®ååºç¡ï¼å°±æ²¡æ计ç®æºçåå±ï¼æ以å¨ç¼åç¨åºçæ¶åï¼éç¨ä¸äºæ°å¦æ¹æ³ä¼å¯¹ç¨åºçæ§è¡æçææ°é级çæé«ã举ä¾å¦ä¸ï¼æ± 1~çåã
æ¹æ³Eï¼
int I , j;for (I = 1 ;I<=; I ++)
{
j += I;
}
æ¹æ³F
int I;I = ( * (1+)) / 2
è¿ä¸ªä¾åæ¯æå°è±¡ææ·±çä¸ä¸ªæ°å¦ç¨ä¾ï¼æ¯æç计ç®æºå¯èèå¸èæçãå½æ¶æåªæå°å¦ä¸å¹´çº§ï¼å¯ææå½æ¶ä¸ç¥éç¨å ¬å¼ NÃ(N+1)/ 2 æ¥è§£å³è¿ä¸ªé®é¢ãæ¹æ³E循ç¯äºæ¬¡æ解å³é®é¢ï¼ä¹å°±æ¯è¯´æå°ç¨äºä¸ªèµå¼ï¼ä¸ªå¤æï¼ä¸ªå æ³(Iåj);èæ¹æ³Fä» ä» ç¨äº1个å æ³ï¼1 次ä¹æ³ï¼1次é¤æ³ãææèªç¶ä¸è¨èå»ãæ以ï¼ç°å¨æå¨ç¼ç¨åºçæ¶åï¼æ´å¤çæ¯å¨èçæ¾è§å¾ï¼æ大é度å°åæ¥æ°å¦çå¨åæ¥æé«ç¨åºè¿è¡çæçã
第åæï¼ä½¿ç¨ä½æä½ä½¿ç¨ä½æä½ãåå°é¤æ³åå模çè¿ç®ãå¨è®¡ç®æºç¨åºä¸æ°æ®çä½æ¯å¯ä»¥æä½çæå°æ°æ®åä½ï¼ç论ä¸å¯ä»¥ç¨"ä½è¿ç®"æ¥å®æææçè¿ç®åæä½ãä¸è¬çä½æä½æ¯ç¨æ¥æ§å¶ç¡¬ä»¶çï¼æè åæ°æ®åæ¢ä½¿ç¨ï¼ä½æ¯ï¼çµæ´»çä½æä½å¯ä»¥ææå°æé«ç¨åºè¿è¡çæçã举ä¾å¦ä¸ï¼
æ¹æ³G
int I,J;I = /8;
J = % ;
æ¹æ³H
int I,J;I = >>3;
J = - ( >> 4 << 4);
å¨åé¢ä¸å¥½åHæ¯G麻ç¦äºå¥½å¤ï¼ä½æ¯ï¼ä»ç»æ¥ç产ççæ±ç¼ä»£ç å°±ä¼æç½ï¼æ¹æ³Gè°ç¨äºåºæ¬çå模å½æ°åé¤æ³å½æ°ï¼æ¢æå½æ°è°ç¨ï¼è¿æå¾å¤æ±ç¼ä»£ç åå¯åå¨åä¸è¿ç®;èæ¹æ³Håä» ä» æ¯å å¥ç¸å ³çæ±ç¼ï¼ä»£ç æ´ç®æ´ï¼æçæ´é«ãå½ç¶ï¼ç±äºç¼è¯å¨çä¸åï¼å¯è½æççå·®è·ä¸å¤§ï¼ä½æ¯ï¼ä»¥æç®åéå°çMS C ,arm C æ¥çï¼æççå·®è·è¿æ¯ä¸å°ã
对äºä»¥2çææ°æ¬¡æ¹ä¸º"*"ã"/"æ"%"å åçæ°å¦è¿ç®ï¼è½¬å为移ä½è¿ç®"<< >>"é常å¯ä»¥æé«ç®æ³æçãå 为ä¹é¤è¿ç®æ令å¨æé常æ¯ç§»ä½è¿ç®å¤§ã
Cè¯è¨ä½è¿ç®é¤äºå¯ä»¥æé«è¿ç®æçå¤ï¼å¨åµå ¥å¼ç³»ç»çç¼ç¨ä¸ï¼å®çå¦ä¸ä¸ªæå ¸åçåºç¨ï¼èä¸åå广æ³å°æ£å¨è¢«ä½¿ç¨ççæ¯ä½é´çä¸(&)ãæ(|)ãé(~)æä½ï¼è¿è·åµå ¥å¼ç³»ç»çç¼ç¨ç¹ç¹æå¾å¤§å ³ç³»ãæ们é常è¦å¯¹ç¡¬ä»¶å¯åå¨è¿è¡ä½è®¾ç½®ï¼è¬å¦ï¼æ们éè¿å°AMERåå¤çå¨çä¸æå±è½æ§å¶å¯åå¨ç第ä½6ä½è®¾ç½®ä¸º0(å¼ä¸æ2)ï¼æéç¨çåæ³æ¯ï¼
#define INT_I2_MASK 0x
wTemp = inword(INT_MASK);
outword(INT_MASK, wTemp &~INT_I2_MASK);
èå°è¯¥ä½è®¾ç½®ä¸º1çåæ³æ¯ï¼
#define INT_I2_MASK 0x
wTemp = inword(INT_MASK);
outword(INT_MASK, wTemp | INT_I2_MASK);
å¤æ该ä½æ¯å¦ä¸º1çåæ³æ¯ï¼
#define INT_I2_MASK 0x
wTemp = inword(INT_MASK);
if(wTemp & INT_I2_MASK)
{
⦠/* 该ä½ä¸º1 */
}
è¿ç¨è¿æéè¦æ³¨æçæ¯ï¼å 为CPUçä¸åè产ççé®é¢ãæ¯å¦è¯´ï¼å¨PCä¸ç¨è¿æç¼åçç¨åºï¼å¹¶å¨PCä¸è°è¯éè¿ï¼å¨ç§»æ¤å°ä¸ä¸ªä½æºå¹³å°ä¸çæ¶åï¼å¯è½ä¼äº§ç代ç éæ£ãæ以åªæå¨ä¸å®ææ¯è¿é¶çåºç¡ä¸æå¯ä»¥ä½¿ç¨è¿æã
第äºæï¼æ±ç¼åµå ¥å¨çææ±ç¼è¯è¨ç人ç¼éï¼Cè¯è¨ç¼åçç¨åºé½æ¯åå¾"ãè¿ç§è¯´æ³è½ç¶åæ¿äºä¸äºï¼ä½æ¯å´æå®çéçãæ±ç¼è¯è¨æ¯æçæé«ç计ç®æºè¯è¨ï¼ä½æ¯ï¼ä¸å¯è½é çå®æ¥åä¸ä¸ªæä½ç³»ç»å§?æ以ï¼ä¸ºäºè·å¾ç¨åºçé«æçï¼æ们åªå¥½éç¨åéçæ¹æ³--åµå ¥æ±ç¼ï¼æ··åç¼ç¨ãåµå ¥å¼Cç¨åºä¸ä¸»è¦ä½¿ç¨å¨çº¿æ±ç¼ï¼å³å¨Cç¨åºä¸ç´æ¥æå ¥_asm{ }å åµæ±ç¼è¯å¥ã
举ä¾å¦ä¸ï¼å°æ°ç»ä¸èµå¼ç»æ°ç»äº,è¦æ±æ¯ä¸åèé½ç¸ç¬¦ã
char string1[],string2[];
æ¹æ³I
int I;
for (I =0 ;I<;I++)
*(string2 + I) = *(string1 + I)
æ¹æ³J
#ifdef _PC_
int I;
for (I =0 ;I<;I++)
*(string2 + I) = *(string1 + I);
#else
#ifdef _arm_
__asm
{
MOV R0,string1
MOV R1,string2
MOV R2,#0
loop:
LDMIA R0!, [R3-R]
STMIA R1!, [R3-R]
ADD R2,R2,#8
CMP R2, #
BNE loop
}
#endif
å举个ä¾åï¼
/* æ两个è¾å ¥åæ°çå¼ç¸å ï¼ç»æåæ¾å°å¦å¤ä¸ä¸ªå ¨å±åéä¸ */
int result;
void Add(long a, long *b)
{
_asm
{
MOV AX, a
MOV BX, b
ADD AX, [BX]
MOV result, AX
}
}
æ¹æ³Iæ¯æ常è§çæ¹æ³ï¼ä½¿ç¨äºæ¬¡å¾ªç¯;æ¹æ³Jåæ ¹æ®å¹³å°ä¸ååäºåºåï¼å¨armå¹³å°ä¸ï¼ç¨åµå ¥æ±ç¼ä» ç¨æ¬¡å¾ªç¯å°±å®æäºåæ ·çæä½ãè¿éææåä¼è¯´ï¼ä¸ºä»ä¹ä¸ç¨æ åçå åæ·è´å½æ°å¢?è¿æ¯å 为å¨æºæ°æ®éå¯è½å«ææ°æ®ä¸º0çåèï¼è¿æ ·çè¯ï¼æ ååºå½æ°ä¼æåç»æèä¸ä¼å®ææ们è¦æ±çæä½ãè¿ä¸ªä¾ç¨å ¸ååºç¨äºLCDæ°æ®çæ·è´è¿ç¨ãæ ¹æ®ä¸åçCPUï¼çç»ä½¿ç¨ç¸åºçåµå ¥æ±ç¼ï¼å¯ä»¥å¤§å¤§æé«ç¨åºæ§è¡çæçã
è½ç¶æ¯å¿ ææï¼ä½æ¯å¦æè½»æ使ç¨ä¼ä»åºæ¨éç代价ãè¿æ¯å 为ï¼ä½¿ç¨äºåµå ¥æ±ç¼ï¼ä¾¿éå¶äºç¨åºçå¯ç§»æ¤æ§ï¼ä½¿ç¨åºå¨ä¸åå¹³å°ç§»æ¤çè¿ç¨ä¸ï¼å§èèé¾ï¼é©è±¡ç¯ç!åæ¶è¯¥ææ°ä¹ä¸ç°ä»£è½¯ä»¶å·¥ç¨çææ³ç¸è¿èï¼åªæå¨è¿«ä¸å¾å·²çæ åµä¸æå¯ä»¥éç¨ã
第å æï¼ ä½¿ç¨å¯åå¨åéå½å¯¹ä¸ä¸ªåéé¢ç¹è¢«è¯»åæ¶ï¼éè¦åå¤è®¿é®å åï¼ä»èè±è´¹å¤§éçååæ¶é´ã为æ¤ï¼Cè¯è¨æä¾äºä¸ç§åéï¼å³å¯åå¨åéãè¿ç§åéåæ¾å¨CPUçå¯åå¨ä¸ï¼ä½¿ç¨æ¶ï¼ä¸éè¦è®¿é®å åï¼èç´æ¥ä»å¯åå¨ä¸è¯»åï¼ä»èæé«æçãå¯åå¨åéç说æ符æ¯registerã对äºå¾ªç¯æ¬¡æ°è¾å¤ç循ç¯æ§å¶åéå循ç¯ä½å åå¤ä½¿ç¨çåéåå¯å®ä¹ä¸ºå¯åå¨åéï¼è循ç¯è®¡æ°æ¯åºç¨å¯åå¨åéçæ好åéè ã
(1) åªæå±é¨èªå¨åéåå½¢åæå¯ä»¥å®ä¹ä¸ºå¯åå¨åéãå 为å¯åå¨åéå±äºå¨æåå¨æ¹å¼ï¼å¡éè¦éç¨éæåå¨æ¹å¼çéé½ä¸è½å®ä¹ä¸ºå¯åå¨åéï¼å æ¬ï¼æ¨¡åé´å ¨å±åéã模åå å ¨å±åéãå±é¨staticåé;
(2) registeræ¯ä¸ä¸ª"建议"åå ³é®åï¼ææç¨åºå»ºè®®è¯¥åéæ¾å¨å¯åå¨ä¸ï¼ä½æç»è¯¥åéå¯è½å 为æ¡ä»¶ä¸æ»¡è¶³å¹¶æªæ为å¯åå¨åéï¼èæ¯è¢«æ¾å¨äºåå¨å¨ä¸ï¼ä½ç¼è¯å¨ä¸å¹¶ä¸æ¥é(å¨C++è¯è¨ä¸æå¦ä¸ä¸ª"建议"åå ³é®åï¼inline)ã
ä¸é¢æ¯ä¸ä¸ªéç¨å¯åå¨åéçä¾åï¼
/* æ±1+2+3+â¦.+nçå¼ */
WORD Addition(BYTE n)
{
register i,s=0;
for(i=1;i<=n;i++)
{
s=s+i;
}
return s;
}
æ¬ç¨åºå¾ªç¯n次ï¼iåsé½è¢«é¢ç¹ä½¿ç¨ï¼å æ¤å¯å®ä¹ä¸ºå¯åå¨åéã
第ä¸æï¼ å©ç¨ç¡¬ä»¶ç¹æ§é¦å è¦æç½CPU对åç§åå¨å¨ç访é®é度ï¼åºæ¬ä¸æ¯ï¼
CPUå é¨RAMã>ãå¤é¨åæ¥RAMã>ãå¤é¨å¼æ¥RAMã>ãFLASH/ROM
对äºç¨åºä»£ç ï¼å·²ç»è¢«ç§å½å¨FLASHæROMä¸ï¼æ们å¯ä»¥è®©CPUç´æ¥ä»å ¶ä¸è¯»å代ç æ§è¡ï¼ä½é常è¿ä¸æ¯ä¸ä¸ªå¥½åæ³ï¼æ们æ好å¨ç³»ç»å¯å¨åå°FLASHæROMä¸çç®æ 代ç æ·è´å ¥RAMä¸ååæ§è¡ä»¥æé«åæ令é度;
对äºUARTç设å¤ï¼å ¶å é¨æä¸å®å®¹éçæ¥æ¶BUFFERï¼æ们åºå°½éå¨BUFFER被å 满åååCPUæåºä¸æãä¾å¦è®¡ç®æºç»ç«¯å¨åç®æ æºéè¿RS-ä¼ éæ°æ®æ¶ï¼ä¸å®è®¾ç½®UARTåªæ¥æ¶å°ä¸ä¸ªBYTEå°±åCPUæä¸æï¼ä»èæ è°æµªè´¹ä¸æå¤çæ¶é´;
å¦æ对æ设å¤è½éåDMAæ¹å¼è¯»åï¼å°±éç¨DMA读åï¼DMA读åæ¹å¼å¨è¯»åç®æ ä¸å å«çåå¨ä¿¡æ¯è¾å¤§æ¶æçè¾é«ï¼å ¶æ°æ®ä¼ è¾çåºæ¬åä½æ¯åï¼èæä¼ è¾çæ°æ®æ¯ä»è®¾å¤ç´æ¥éå ¥å åç(æè ç¸å)ãDMAæ¹å¼è¾ä¹ä¸æ驱å¨æ¹å¼ï¼åå°äºCPU 对å¤è®¾çå¹²é¢ï¼è¿ä¸æ¥æé«äºCPUä¸å¤è®¾ç并è¡æä½ç¨åº¦ã
以ä¸å°±æ¯ææ»ç»çå¦ä½ä¼åC代ç çæ¹æ³äºã
什么**比较好看?
海盗4、蓝精灵、藏龙藏龙赛车总动员2、源码源码源代码、手游在线查看linux源码变形金刚3、卧虎卧虎哈利波特7下、藏龙藏龙众筹软件源码美国队长、源码源码狂暴飞车、手游永无止境、卧虎卧虎猿族崛起、藏龙藏龙X战警第一战、源码源码绿灯侠、手游死神来了5、卧虎卧虎七牛图源码武侠、藏龙藏龙窃听风云2、源码源码无价之宝、linux源码编辑软件巴黎宝贝、全城热恋、大武生、VB源码 Excel表单孤胆特工、倾城之泪、龙门飞甲、金陵十三钗、鸿门宴、天堂之吻、夏日恋神马、青春失乐园
2024-11-26 16:42
2024-11-26 15:50
2024-11-26 15:31
2024-11-26 15:27
2024-11-26 15:25