欧美极品高清xxxxhd,国产日产欧美最新,无码AV国产东京热AV无码,国产精品人与动性XXX,国产传媒亚洲综合一区二区,四库影院永久国产精品,毛片免费免费高清视频,福利所导航夜趣136

標題: [求助]一個AVR新新新新新手,求助 [打印本頁]

作者: 51電控4961893    時間: 2012-9-3 15:59
標題: [求助]一個AVR新新新新新手,求助

我想用單片機按鍵控制AD轉換,然后用另一個按鍵控制,按一下向上位機傳送一個AD轉換數據。可是我實在是太新了,真心求助。我的代碼很亂,都是我各種拼湊的。如果有師傅給個例程最好不過,沒有例程的話也希望大家能給指點一下,拜謝。


#include<iom16v.h>
#include<macros.h>
unsigned char data_receive = 0,i=0;
unsigned char num[10];
unsigned char tx[1000];
unsigned int value,a=0,j=0,flag0=1,flag1,n,c=0,m;
void port_init(void)
{
PORTA=0x00;
DDRA=0x00;
PORTB=0xff;
DDRB=0x00;
PORTC=0x00;
DDRC=0x00;
PORTD=0x00;
DDRD=0x00;
}
void uart0_init(void)
{
UCSRB=0X00;
UCSRA=0X00;
UCSRC=BIT(URSEL) | 0X06;
UBRRL = 0X67;
UBRRH = 0X00;
UCSRB = 0XD8;
}

#pragma interrupt_handler int1_isr:3
void int1_isr(void)
{
 flag0=1;
  flag1=1;
}
#pragma interrupt_handler int0_isr:2
void int0_isr(void)
{
num[c]=value;
c++;
if(c==10)
c=0;
}
#pragma interrupt_handler adc_isr:iv_ADC
void adc_isr(void)
{
value=ADCL;
value|=(int)ADCH<<8;
}
#pragma interrupt_handler uart0_rx_isr:iv_USART0_RXC
void uart0_rx_isr(void)
{
data_receive = UDR;
}

#pragma interrupt_handler uart0_tx_isr:iv_USART0_TXC
void uart0_tx_isr(void)
{
delay(100);
if(flag1==1)
{
transmit(num[i++]);
flag1=0;
}
}
void adc_init(void)
{
ADCSR = 0X00;
ADMUX = 0X40;
ACSR = 0X80;
ADCSR = 0XEF;
SFIOR=0x40;
}
void init_devices(void)
{
CLI();
port_init();
adc_init();
uart0_init();
MCUCR = 0x0a;
GICR  = 0xc0;
TIMSK = 0x00;
SEI();
}
void delay(void)
{
int a=0,b=0;
for(a=0;a<30000;a++)
for(b=0;b<20;b++);
}
void transmit(unsigned char data_tx)
{
while(!(UCSRA&(1<<UDRE)));
UDR = data_tx;
}
void main(void)
{
init_devices();
DDRA=0xff;
DDRB=0xff;


while(1)
{if(flag0==1)
{
transmit(num[0]);
flag0=2;
//transmit(tx[j]);
//j++;

}
if(i>=10)
{
i=0;
}
PORTA= data_receive;
//tx[a]= data_receive;
//for(n=0;n<30000;n++)
//for(m=0;m<20;m++);
//a++;
//if(a==1000)
//a=0;
}
}

作者: 51電控4961893    時間: 2012-9-3 16:05
 不知道怎么辦,傳不了我板子的照片。我的板子是ATmega16的,A口連接8個小燈,B口是數碼管




歡迎光臨 (http://www.raoushi.com/bbs/) Powered by Discuz! X3.1