功勋会员
WJ
- 积分
- 6304
- 威望
- 1456
- 贡献
- 4674
- 兑换币
- 17
- 注册时间
- 2008-4-6
- 在线时间
- 87 小时
|
<><FONT face=黑体 size=3>break 和continue的区别: </FONT></P><P><BR><FONT face=黑体 size=3>//求数组中正数的和。 <BR>for (i=0;i<10;i++) <BR>{ <BR>if(a<0) <BR> continue;//continue 只是结束本次循环,不影响整个循环,条件满足时候,本次循环结束, <BR> //遇到continue语句时候,不执行他后面的语句,将负数舍弃。然后转向if循环语句。 <BR> aa+=a; <BR>} </FONT></P><P><BR><FONT face=黑体 size=3>//求调和级数中第多少项的值大于4 <BR>// 1+1/2+1/3+1/4+1/5+......+1/n; </FONT></P><P><FONT face=黑体 size=3>sum+=1.0/n; <BR>if(sum>LIMIT) break; n++; //break和if语句一起用,当条件满足时候,for循环终止, <BR> // 他终止整个循环。。 <BR> //用在switch语句中只是结束swith语句。不影响循环;n=31; <BR>} </FONT></P><P><FONT face=黑体 size=3>**********************************************************************************</FONT></P><P><FONT face=黑体 size=3>**********************************************************************************</FONT></P><P><FONT face=黑体 size=3>**********************************************************************************<BR>位操作: <BR>1 DDRB3=1 DDRB|=(1<<3) DDRB|=BIT(3) DDRB|=BIT(DDB3) 是等同的 <BR>2 PORTA&=0x7f; PORTA&=0b0111 1111 </FONT></P><P><FONT face=黑体 size=3>if ((PIND&0x80)==0) if((PIND&(1<<7))==0) <BR>if ((PIND&0x80)==0x80) if((PIND&(1<<7))==(1<<7)) </FONT></P><P><BR><FONT face=黑体 size=3>3 const int table[7]={1,2,3);//说明table 是按照表格样分配在程序存储器的数组的 <BR>const char *ptr1; //数据在数据存储器,而指向数据的指针在程序存储器。(地址ptr1在rom) <BR>char * const ptr2;//数据在程序存储器,而指向数据的指针在数据存储器。 <BR>const char * const ptr3;//都在程序存储器。 <BR>const char hello[]="hello world";//为了节约空间,用常量字符形数组将字符串放在rom中。 <BR>unsigned char c =*(volatile unsigned char *)0x5f;//在数据内存中一个直接地址可以通过加指针类型符号直接访问。sreg的地址是5f,这样可以访问sreg。 <BR>*(volatile unsigned char *)0x5f|=0x80; //同上 访问0x20--0x5f地址 </FONT></P><P><FONT face=黑体 size=3>4 EECR|=(1<<EEMWE); <BR>while (EECR&(1<<EEWR)) <BR>WDTCR=(1<<WDCE)|(1<<WDE); 置位WDCE,WDE <BR>PORTB=(1<<PB7)|(1<<PB5)|(1<<PB4)|(1<<PB2); <BR>DDRB=(1<<DDB7)|(1<<DDB5)|(1<<DDB4)|(1<<DDB2); </FONT></P><P><FONT face=黑体 size=3>PORTA|=BIT(PA7); PORTA|=0X80; </FONT></P><P><FONT face=黑体 size=3> PORTA^=0X80;//翻转位7 </FONT></P><P><FONT face=黑体 size=3>5 置位数据寄存器的第7位, <BR>char a; <BR>a|=(1<<7); <BR>或者 a|=BIT(7); </FONT></P><P><FONT face=黑体 size=3>6 在macros.h中。定义了常用的位操作宏定义。 <BR>#define WDR() asm("wdr") <BR>#define SEI() asm("sei") <BR>#define CLI() asm("cli") <BR>#define NOP() asm("nop") <BR>#define _WDR() asm("wdr") <BR>#define _SEI() asm("sei") <BR>#define _CLI() asm("cli") <BR>#define _NOP() asm("nop") <BR>6 <BR>#define pi 3.1415926 <BR>#define LEAP_YEAR year%4==0\ <BR> & year%100!=0| year%400==0 //一行写不下用\ <BR>#define S(a,b) a*b // area=s(3,2) <BR>#define S(r) pi*(r)*(r) //area=S(a+b); =pi*(a+b)(a+b) <BR>7 </FONT></P><P><FONT face=黑体 size=3>条件编译。 <BR>#ifdef KEY <BR> .....; <BR>#else <BR> ....; <BR>#endif </FONT></P><P><BR><FONT face=黑体 size=3>用0b<1|0>指定二进制。 <BR> #define U8 unsigned char <BR> #define U16 unsigned int <BR> #define U32 unsigned long <BR> #define I8 signed char <BR> #define I16 signed int <BR> #define I32 signed long <BR> #define F32 float </FONT></P><P><FONT size=3> </FONT></P> |
|