ATMEL有AT90USB芯片,可以硬件直接支持USB并支持多个endpoint, 并且在官方网站提供了很多资料参考. 我买了一个AT90USBKEY评估工具, 是用的AT90USB1287, 网站上有很多资料 http://www.atmel.com/dyn/products/product_card.asp?part_id=3875 实际上AT90USB1287比较贵, 而低端的AT90USB162有望千片价格在15元以内, 很有竞争力.我们就想用它于产品上.
现在的问题是,官方给的示例程序的结构和我们平常单片机编程思路完全不同!!! 我们一般的思路都是主程序采用while(1)这种循环, 把外中断,定时中断产生相应标志位. 而官方给的示例程序是定义task, 这样就没有实时性了, 只是完成一个任务之后再去干另一个. 而我的程序还要添加红外遥控接收这种对实时性要求很高的任务,不知道在原来的示例程序基础上如何修改. (最好保持原有的程序架构,不要按我们通常的while(1)思路修改, 芯片内部的奇存器好象太复杂了,芯片整个datasheet足足有400多页)
|