資源簡介
這是我用attiny13做的pwm和ad采樣程序,通過改變采樣電壓來控制占空比大小,調試成功!

代碼片段和文件信息
//main.c
#include?
#include?
//typedef?unsigned?char?uint8;
//typedef?unsigned?int?uint16;
#define?uchar?unsigned?char?
#define?uint?unsigned?int?
/*typedef?enum
{
READ?=?0
WRITE
}IIC_RW_TAG;
typedef?enum
{
FALSE?=?0
TRUE
}BOOLEAN;
typedef?enum
{
NON_KEY?=?0
KEY1
KEY2
}KEY_VALUE;*/
#define?BIT(i) (1?<#define?ADC_PORT 2
//#define?KEY3_PORT 0
//#define?KEY4_PORT 1
#define?LOW_ADC_LINE 0x155//0x186//0x01//
#define?HIGH_ADC_LINE 0x2BB//0x2AA//0x3FE//
//#define?GREEN 3
//#define?RED 4
#define?VOLUME_ADD 0x5
#define?VOLUME_SUB 0xa
//#define?RED_ON DDRB?|=??(1?<//#define?RED_OFF DDRB?&=?~(1?<//#define?GREEN_ON DDRB?|=??(1?<//#define?GREEN_OFF DDRB?&=?~(1?<
void?Delay_ms(uint?n);
//void?Delay_IIC(uint16?n);
void?ADC_init(void);
//KEY_VALUE?Get_KEY_VALUE(void);
void?sys_init(void);
int?main(void);
void?Delay_ms(uint?n) //n?=?0時,為最大延時
{
uint?m?=?250;
while(--n)
{
while(--m);
}
}
/*void?Delay_IIC(uint16?n) //n?=?0時,為最大延時
{
while(--n);
}*/
void?ADC_init(void)
{
ADCSRA=0x00;
/***************************************************
//內部1.1v參考電壓0通道
ADMUX?ADC多路復其選擇寄存器?-?ADMUX
7???6?????5????4??3??2???1????0
-?REFS0?ADLAR??-??-??-?MUX1?MUX0
____________________________________________
REFS0?|?參考電壓選擇
0?????|?Vcc?作為模擬參考電壓
1?????|?片內基準電壓1.1V
--------------------------------------------
ADLAR?=?0?右對齊
MUX1.MUX1:01??-?ADC1
*******************************************************/
ADMUX?=?0x01; //選擇ADC1通道
ACSR?=?(1?<
/********************************************************************
ADCSRA:ADEN ADSC ADATE ADIF ADIE ADPS2 ADPS1 ADPS0
7?-?ADEN:?ADC使能
6?-?ADSC:?ADC開始轉換
5?-?ADATE:?ADC自動觸發使能
4?-?ADIF:?ADC中斷標志位
3?-?ADIE:?ADC中斷允許
2..0?-?ADPS2..0:?ADC預分頻選擇
000?-?2?;?001?-?2;010?-?4;?011?-?8;
100?-?16;101?-?32;110?-?64;111?-?128
*********************************************************************/
//使能ADC,終端允許自由模式時鐘CLK/8
//0x86允許轉換ADEN,ADSC,時鐘128分頻?75KHz@9.6MHz?system?clock
ADCSRA?=?(1?<}
/*KEY_VALUE?Get_KEY_VALUE(void)
{
KEY_VALUE? key_ret?=?NON_KEY;
uint16 adc_value1;
uint16 adc_value2;
ADC?=?0;
ADCSRA??|=??(1?< Delay_IIC(8);
loop_until_bit_is_set(ADCSRA?ADIF); //方法1?等待AD轉換結束
////loop_until_bit_is_clear(ADCSRA?ADSC); //方法2?檢測ADSC=0也行
ADCSRA?|=?(1?<
/*******計算公式******************************************
ADC(ADCH+ADCL)?=?(Vin?*?1024)/Vref
Vin?:選定的輸入因交上的電壓,Vref選定的參考電源的電壓,現為Vcc
********************************************************/
/*adc_value1?=?ADC;
Delay_ms(20); //去抖動延時
ADCSRA??|=??(1?< Delay_IIC(8);
loop_until_bit_is_set(ADCSRA?ADIF); //方法1?等待AD轉換結束
////loop_until_
?屬性????????????大小?????日期????時間???名稱
-----------?---------??----------?-----??----
?????文件???????1119??2012-03-22?17:01??322attiny13?pass\armok01128594\.dep\main.o.d
?????文件????????110??2012-03-22?13:46??322attiny13?pass\armok01128594\1.pnproj
?????文件?????????54??2012-03-22?13:46??322attiny13?pass\armok01128594\1.pnps
?????文件???????7620??2006-09-11?11:28??322attiny13?pass\armok01128594\ADC做的雙按鍵_SCH.gif
?????文件???????5324??2012-03-22?17:01??322attiny13?pass\armok01128594\main.c
?????文件?????????13??2012-03-22?17:01??322attiny13?pass\armok01128594\main.eep
?????文件???????5792??2012-03-22?17:01??322attiny13?pass\armok01128594\main.elf
?????文件???????1175??2012-03-22?17:01??322attiny13?pass\armok01128594\main.hex
?????文件???????9783??2012-03-22?17:01??322attiny13?pass\armok01128594\main.lss
?????文件??????12745??2012-03-22?17:01??322attiny13?pass\armok01128594\main.lst
?????文件??????15223??2012-03-22?17:01??322attiny13?pass\armok01128594\main.map
?????文件???????5504??2012-03-22?17:01??322attiny13?pass\armok01128594\main.o
?????文件???????1280??2012-03-22?17:01??322attiny13?pass\armok01128594\main.sym
?????文件??????14821??2006-08-31?08:41??322attiny13?pass\armok01128594\Makefile
?????文件????????782??2012-03-22?16:10??322attiny13?pass\armok01128594\pwm.h
?????目錄??????????0??2012-03-22?17:04??322attiny13?pass\armok01128594\.dep
?????目錄??????????0??2012-03-22?17:04??322attiny13?pass\armok01128594
?????目錄??????????0??2012-03-22?18:10??322attiny13?pass
-----------?---------??----------?-----??----
????????????????81345????????????????????18
- 上一篇:Windows Installer Clean UP
- 下一篇:vue開發購物車完整
評論
共有 條評論