?? 9600.c
字號:
#include <avr/io.h>
#include <avr/interrupt.h>
#include <avr/signal.h>
#include "delay.h"
#define uchar unsigned char
#define uint unsigned int
#define ulong unsigned long
#define CHKBIT(x,y) (x&(1<<y)) //check bit y in byte x
volatile uchar rxd;
volatile ulong i,l;
volatile uchar flag;
volatile uchar k1,k2,k3;
volatile uchar t[400]={0};
volatile uint d;
void send0(uchar c)
{
// UCSR0B = 0x48; //關串口接受
while( !(UCSR0A & (1<<UDRE0)) ); //等待置位
UDR0=c; //c數放入UDR緩沖區發送
}
/*
SIGNAL(SIG_UART0_RECV)
{
rxd = UDR0;
send0(rxd);
}*/
/*
SIGNAL(SIG_UART1_RECV)
{
rxd = UDR1;
send0(rxd);
}*/
void port_init(void)
{
PORTD = 0xFF;
DDRD = 0x00;
}
//定時T1初始化
void timer1_init(void)
{
TCCR1B = 0x00; //停止定時器
TIMSK|= 0x04; //中斷允許
TCNT1H = 0xfd;
TCNT1L = 0x0f; //初始值
TCCR1A = 0x00;
// TCCR1B = 0x02; //啟動定時器
}
SIGNAL(SIG_OVERFLOW1)
{
TCNT1L = 0x0f; //初始值
TCNT1H = 0xfd;
i++;
}
void USART_Init(void)
{
cli(); //禁止所有中斷
// MCUCR = 0x00;
// MCUCSR = 0x80; //禁止JTAG
// GICR = 0x00;
// DDRE|=(1<<TXD0);
// DDRE&=~(1<<RXD0);
UCSR0B|=(1<<TXEN0);//(1<<RXEN0)||(1<<RXCIE0);//允許接受,允許發送,開接受中斷
UCSR0C|=(1<<UCSZ01)|(1<<UCSZ00);//8位數據,1位停止位
UBRR0L=11; //baund 8m 51-9600 12-384000 7,3728m 11-384000
UBRR0H=0;
// DDRD|=(1<<TXD1);
//DDRD&=~(1<<RXD1);
/*
UCSR1B|=(1<<RXEN1)|(1<<RXCIE1);;//|(1<<TXEN1); //|(1<<RXCIE1);//允許接受,允許發送,開接受中斷
UCSR1C|=(1<<UCSZ11)|(1<<UCSZ10);//8位數據,1位停止位
UCSR1A = 0x02;
// UBRR1L=0x57; //7,3728m 10400bps
UBRR1L=0x5f; //7,3728m 9600bps
UBRR1H=0;
*/
sei(); //開總中斷
}
int main()
{ uchar u;
port_init();
USART_Init();
timer1_init();
for(k1=0;k1<200;k1++)
{
for(k2=0;k2<200;k2++)
;
}
d=0;
while(CHKBIT(PIND,2));
u=CHKBIT(PIND,2);
TCCR1B = 0x01;
flag=1;
while(1)
{
/*
if(CHKBIT(PIND,2))
{
TCCR1B=0;
send0(i>>24);
send0(i>>16);
send0(i>>8);
send0(i);
send0(TCNT1H);
send0(TCNT1L);
}*/
while(!(u^CHKBIT(PIND,2)));
u=CHKBIT(PIND,2);
t[d]=i>>24;
d++;
t[d]=i>>16;
d++;
t[d]=i>>8;
d++;
t[d]=i;
d++;
i=0;
if(d>399)
{
TCCR1B=0;
flag=1;
for(d=0;d<400;d++)
send0(t[d]);
d=0;
while(1);
}
}
}
?? 快捷鍵說明
復制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號
Ctrl + =
減小字號
Ctrl + -