自制AVR试验板-第四天
嘿嘿,记录下早上的劳动成果。早上把POV试验用的扩展板焊好了,并测试通过 :D
过程还是有点曲折,原先认为是再简单不过的了,就焊接好几个LED就行了。结果焊接好后要测试,怎么都只有PORTD0上的灯会闪,怀疑是程序没正确写入,重复了两三遍,都还是一样。后来拿万用表逐个测试LED,发现只有接在PORTD0上的LED正负极是对的,其它都接反了?!原来昨天买的LED不是每个都一样规格...不是长腿的就是正极...以后得记住这个教训。逐个重焊后,把程序改一下,就测试通过了,接下来要做的其实就是再写个程序自动生成bitmap数组的内容,看下面的代码你就会清楚:
#include <iom8v.h> #include <macros.h> void port_init(void) { PORTB = 0xFF; DDRB = 0xFF; PORTC = 0xFF; //m103 output only DDRC = 0xFF; PORTD = 0xFF; DDRD = 0xFF; } //call this routine to initialize all peripherals void init_devices(void) { //stop errant interrupts until set up CLI(); //disable all interrupts port_init(); MCUCR = 0x00; GICR = 0x00; TIMSK = 0x00; //timer interrupt sources SEI(); //re-enable interrupts //all peripherals are now initialized } void delay(void) { unsigned char i, j; for(i=3000; i>0; i--) for(j=3000; j>0; j--); } const unsigned char bitmap[] = { 0b11111110, 0b11111100, 0b11111000, 0b11110000, 0b11100000, 0b11000000, 0b10000000, 0b00000000 }; void main(void) { int i=0; init_devices(); while(1) { PORTD = bitmap[i]; i = i == 7 ? 0 : i+1; delay(); } }
最新照片和试验视频:
[hana-flv-player video="/my-files/video/S3020663.flv"/]
[下午更新]
哈哈,终于有点POV的样子啦,程序比较土,但是符合我的第一期要求,晚上应该就可以做到盒子里去了 :D
费了很多力气拍的照片:
调LED切换的延迟时间和测试搞得我手酸死了,写入程序后,装上板子,拿到镜子前,甩来甩去,不行又拿回来再改程序再写,写完再甩...