|
前几天折腾下,这个片子很好用。而且内置了输入输出的缓冲。和FT232,PL2303不同的时候,在MCU端是并口通讯。所以比较适合大吞吐量。
代码照抄USBISP的。
/**
*
* FT245.c
*
* Compiler : WinAVR-20100110
* Version : 1.0
**/
#include <avr/io.h>
#include <util/delay.h>
#include <avr/interrupt.h>
#define FT245_TXE PING4
#define FT245_RXF PING3
#define FT245_WR_active sbi(PORTG,PG1)
#define FT245_WR_inactive cbi(PORTG,PG1)
#define FT245_RD_active cbi(PORTG,PG0)
#define FT245_RD_inactive sbi(PORTG,PG0)
#define R_FT245_DATA PIND
#define W_FT245_DATA PORTD
void Ft245_Init(void)
{
PORTD = 0xFF;
DDRD = 0x00;
PORTG |= (1<<PG4)|(1<<PG3)|(1<<PG0);
DDRG |= (1<<DDG1)|(1<<DDG0);
PORTB |= (1<<PB7)|(1<<PB6);
DDRB |= (1<<DDB7);
}
void FT245_Write(unsigned char ftData)
{
while (PING & (1<<FT245_TXE));
DDRD = 0xFF;
PORTD = ftData;
FT245_WR_active;
asm("NOP");
FT245_WR_inactive;
DDRD = 0x00;
PORTD = 0xFF;
}
signed int FT245_Read(void)
{
unsigned char ftData = 0x00;
if (!(PING & (1<<FT245_RXF)))
{
FT245_RD_active;
asm("NOP");
FT245_RD_inactive;
ftData = PIND;
return ftData;
}
return -1;
} |
阿莫论坛20周年了!感谢大家的支持与爱护!!
知道什么是神吗?其实神本来也是人,只不过神做了人做不到的事情 所以才成了神。 (头文字D, 杜汶泽)
|