📄 pwn.c
字号:
/***********************************************
PB.0.4.5口接
**********************************************/
#include "iom8v.h"
#include "macros.h"
void timer1_init(void)
{
TCCR1B = 0x00; //stop
TCNT1H = 0x63; //setup
TCNT1L = 0xC0;
OCR1AH = 0x00;
OCR1AL = 0x00;
OCR1BH = 0x9C;
OCR1BL = 0x40;
ICR1H = 0x00;
ICR1L = 0x00;
TCCR1A = 0xa1;
TCCR1B = 0x01; //start Timer
TCCR2 = 0x00; //stop
ASSR = 0x00; //set async mode
TCNT2 = 0x00; //setup
OCR2 = 0xFF;
TCCR2 = 0x61; //start
}
//ADC initialize
// Conversion time: 52uS
void adc_init(void)
{
ADCSR = 0x00; //disable adc
ADMUX = 0x00; //select adc input 0
ACSR = 0x80;
ADCSR = 0xe6;
ADC=ADC>>1;
ADCSR|=BIT(ADSC);
}
void main()
{
int W;
DDRB = 0xff;
PORTB = 0x00;
PORTC = 0xff;
DDRC = 0x00;
PORTD = 0xf0;
DDRD = 0x00;
timer1_init();
adc_init();
for(;;)
{
W=PIND;
switch (W)
{
case 1: PORTB=0x01;
TCCR1A&=~0x30;
TCCR2&=~0x30;
TCCR1A|=0xc0; break;
case 2: PORTB=0x01;
TCCR1A|=0x30;
TCCR2&=~0x30;
TCCR1A&=~0xc0;break;
case 3: PORTB=0x20;
TCCR1A|=0x30;
TCCR2&=~0x30;
TCCR1A&=~0xc0;break;
case 4: PORTB=0x20;
TCCR1A&=~0xf0;
TCCR2|=0x10;break;
case 5: PORTB=0x10;
TCCR1A&=~0xf0;
TCCR2|=0x10;break;
case 6: PORTB=0x10;
TCCR1A&=~0x30;
TCCR2&=~0x30;
TCCR1A|=0xc0; break;
default: TCCR1A&=~0xf0;
TCCR2&=~0x30;
}
OCR2=ADCL;
OCR1AL=ADCL;
OCR1BL=ADCL;
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -