求教:马老师Mega16连8254为什么出不了波形??
马老师帮我看看!我用的是Atman Avr编译器.PA口连8254的D0-7,PC4--A1,PC3--A0,PC2--!WR,PC1--!RD,PC0--!CS
完了我想初始化8254但是就是出不了波形...
PORTA=0x00;
DDRA=0xff;
PORTC=0xff;
DDRC=0xff;
main()
cbi(PORTC,PC0); // cs=0
cbi(PORTC,PC2);// wr=0
PORTA=0x96;//控制方式(A1,A0=1) 2通道
PORTA=0x0a;//置初值
//////////////////////////////////
cbi(PORTC,PC3);
cbi(PORTC,PC2);
PORTA=0x0a;//置初值
//8254中 CLK信号我加了8M晶振,GATE信号加了+5V电源 可是OUT信号没有脉冲的波形,只有1v的直流电压... 1.为什么用8254而不用AVR中的T/C?感觉有点画蛇添足的味道.
2.AVR没有并行接口,8254是并行接口芯片.根据你主程序中的几句代码看,你用PORT口模拟并行时序有问题,你好象根本不知道8254的操作时序. 谢谢马老师的解析.
1.我用8254而没有用内部的计数器是因为我需要比较高并且稳定的时钟频率,T/C可能满足不了.
2.8254的文档我看过了,我也看了相关书籍的程序,一般情况它都是与PC连着,控制8254内部三个独立寄存器的不同地址进行初始化,但是跟avr单片机连接,我不知道确切地址,也就是不知道怎么写进去,继续摸索中... 就是,你的微机原理没有学好.
另外,AVR的T/C1性能不会差的. 地址就是引脚连接。
你看文档。
直接用avr模拟总线时序控制8245就可以了。
如果想用地址映射实现,可以改用Mage8535之类的. 这本身不是什么难的东西,应该算最基本的功力了.但是会者不难,难者不会.
页:
[1]