📄 step 080314.c
字号:
#include <ht46r51a.h>
#pragma rambank0
char mtp;
unsigned char highbit;
unsigned int percent_light;
unsigned int i,u;
char L_start;
char R_start;
#pragma vector isr_4 @ 0x4
#pragma vector isr_8 @ 0x8
#pragma vector isr_c @ 0xc
#pragma vector isr_14 @ 0x14
//ISR for safequard
void isr_8(){} // timer/event 0
void isr_14(){_nop();
_nop();
_nop();}
void isr_4()
{
}
void io_init()
{
_pac=0x00; // "1"=input
_pa=0x00;
_pbc=0xff;
_pb=0x00;
}
void wait(unsigned int t)
{ unsigned int i;
for(i=0;i<t;i++)
{
_delay(5000);
}
}
char left_1(char left)
{
char result;
char mid;
mid=(left<<1);
_acc=mid;
result=_acc;
_pa=result;
wait(1);
_pa=0x00;
wait(1);
return result;
}
char right_1(char right)
{
char result;
char mid=right;
_acc=mid;
result=_acc;
_pa=result;
result=(right>>1);
result=(result&0x07f);
_acc=result;
wait(1);
_pa=0x00;
wait(1);
return result;
}
void turn_left()
{
L_start=left_1(L_start);
if(L_start==0x80)
{ L_start=0x08;}
}
void turn_right()
{
R_start=right_1(R_start);
if(R_start==0x08)
{R_start=0x80;}
}
void wiseclock()
{
R_start=0x080;
for(u=0;u<15;u++)
{
turn_right();
}
}
void counter_clock()
{
L_start=0x08;
for(u=0;u<15;u++)
{
turn_left();
}
}
void main()
{
io_init();
_pa=0x00;
L_start=0x08;
R_start=0x80;
while(1)
{
for(i=0;i<100;i++)
{counter_clock();
}
for(i=0;i<100;i++)
{
wait(10);
}
for(i=0;i<100;i++)
{
wiseclock();
}
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -