📄 pwm.i
字号:
#line 1 "C:\DOCUME~1\Administrator\桌面\pwm\pwm.c"
#line 1 "C:/icc/include/stdio.h"
#line 1 "C:/icc/include/stdarg.h"
typedef char *va_list;
#line 9 "C:/icc/include/stdarg.h"
char *_va_start(void *, int);
#line 13 "C:/icc/include/stdarg.h"
#line 4 "C:/icc/include/stdio.h"
#line 1 "C:/icc/include/_const.h"
#line 10 "C:/icc/include/_const.h"
#line 5 "C:/icc/include/stdio.h"
int getchar(void);
int putchar(char);
int puts( char *);
int printf( char *, ...);
int vprintf( char *, va_list va);
int sprintf(char *, char *, ...);
int vsprintf(char *, char *, va_list va);
int scanf( char *, ...);
int vscanf( char *, va_list va);
int sscanf(char *, char *, ...);
int vsscanf(char *, char *, va_list va);
int cprintf(const char *, ...);
int csprintf(char *, const char *, ...);
#line 2 "C:\DOCUME~1\Administrator\桌面\pwm\pwm.c"
#line 1 "C:/icc/include/io8515v.h"
#line 7 "C:/icc/include/io8515v.h"
#line 10 "C:/icc/include/io8515v.h"
#line 3 "C:\DOCUME~1\Administrator\桌面\pwm\pwm.c"
#line 1 "C:/icc/include/macros.h"
#line 35 "C:/icc/include/macros.h"
void _StackCheck(void);
void _StackOverflowed(char);
#line 4 "C:\DOCUME~1\Administrator\桌面\pwm\pwm.c"
void InitPorts()
{
(*(volatile unsigned char *)0x3A) = 0xFF;(*(volatile unsigned char *)0x3B) = 0xFF;
(*(volatile unsigned char *)0x37) = 0x0F;(*(volatile unsigned char *)0x38) = 0xFF;
(*(volatile unsigned char *)0x34) = 0x00;(*(volatile unsigned char *)0x35) = 0xFF;
(*(volatile unsigned char *)0x31) = 0x3F;(*(volatile unsigned char *)0x32) = 0xF0;
DDRE = 0x04;PORTE = 0x07;
}
void pwm_init(void)
{
(*(volatile unsigned char *)0x4F)=0x00;
(*(volatile unsigned char *)0x4E)=0x00;
(*(volatile unsigned char *)0x4E)|=(0<<WGM13)|(1<<WGM12);
(*(volatile unsigned char *)0x4F)|=(0<<WGM11)|(1<<WGM10);
(*(volatile unsigned char *)0x4F)|=(1<< 7)|(0<< 6);
(*(volatile unsigned char *)0x4F)|=(1<< 5)|(0<< 4);
(*(volatile unsigned char *)0x4E)|=(1<< 2)|(0<< 1)|(0<< 0);
(*(volatile unsigned int *)0x4C)=0;
(*(volatile unsigned int *)0x4A)=0;
(*(volatile unsigned int *)0x48)=0;
}
void motor_R(int speed)
{
if(speed<0)
{
((*(volatile unsigned char *)0x32)|=(1<< 0));
((*(volatile unsigned char *)0x32)&=~(1<< 1));
(*(volatile unsigned int *)0x4A)=(-1)*speed*255/100*speedrp/100;
}
else if(speed==0)
{
((*(volatile unsigned char *)0x32)&=~(1<< 0));
((*(volatile unsigned char *)0x32)&=~(1<< 1));
(*(volatile unsigned int *)0x4A)=speed*255/100*speedrp/100;
}
else
{
((*(volatile unsigned char *)0x32)|=(1<< 1));
((*(volatile unsigned char *)0x32)&=~(1<< 0));
(*(volatile unsigned int *)0x4A)=speed*255/100*speedrp/100;
}
}
void motor_L(int speed)
{
if(speed<0)
{
((*(volatile unsigned char *)0x32)|=(1<< 2));
((*(volatile unsigned char *)0x32)&=~(1<< 3));
(*(volatile unsigned int *)0x48)=(-1)*speed*255/100*speedlp/100;
}
else if(speed==0)
{
((*(volatile unsigned char *)0x32)&=~(1<< 2));
((*(volatile unsigned char *)0x32)&=~(1<< 3));
(*(volatile unsigned int *)0x48)=speed*255/100*speedlp/100;
}
else
{
((*(volatile unsigned char *)0x32)|=(1<< 3));
((*(volatile unsigned char *)0x32)&=~(1<< 2));
(*(volatile unsigned int *)0x48)=speed*255/100*speedlp/100;
}
}
void twds(void)
{
if(s0==white&&s1==black){ motor_L(30);motor_R(70);}
else if(s0==black&&s1==white){ motor_L(70);motor_R(30);}
else { motor_L(70);motor_R(70);}
}
void bakwds(void)
{
;
}
void stop(void)
{
motor_L(0);
motor_R(0);
}
void towards(unsigned char n)
{
unsigned int i=0;
unsigned int j=0;
unsigned char os2;
while(n)
{
twds();
if(os2==white && s2==white) i++;
else i=0;
if(os2==black && s2==black && j<=BW) j++;
os2=s2;
if(i>=WW && j>=BW)
{
n--;
i=0;
j=0;
}
(*(volatile unsigned char *)0x35)=n;
delay_us(10);
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -