|
|||||||||||
| 技術(shù)交流 | 電路欣賞 | 工控天地 | 數(shù)字廣電 | 通信技術(shù) | 電源技術(shù) | 測(cè)控之家 | EMC技術(shù) | ARM技術(shù) | EDA技術(shù) | PCB技術(shù) | 嵌入式系統(tǒng) 驅(qū)動(dòng)編程 | 集成電路 | 器件替換 | 模擬技術(shù) | 新手園地 | 單 片 機(jī) | DSP技術(shù) | MCU技術(shù) | IC 設(shè)計(jì) | IC 產(chǎn)業(yè) | CAN-bus/DeviceNe |
剛用ATMEGA64為什么連I/O口控制都不行啊! |
| 作者:M64 欄目:單片機(jī) |
//ICC-AVR application builder : 2006-10-17 9:58:55 // Target : M64 // CRYSTAL: 4.0000MHZ #include <iom64v.h> #include <macros.h> void port_init(void) { PORTA = 0x00; DDRA = 0xFF; PORTB = 0x00; DDRB = 0x00; PORTC = 0x00; //M103 OUTPUT ONLY DDRC = 0x00; PORTD = 0x00; DDRD = 0x00; PORTE = 0x00; DDRE = 0x00; PORTF = 0x00; DDRF = 0x00; PORTG = 0x00; DDRG = 0x00; } /**************************************/ void WTD_off(void) { WDTCR=(1<<WDCE)|(1<<WDE); WDTCR=0x00; } /***********************************************/ //call this routine to initialize all peripherals void init_devices(void) { //stop errant interrupts until set up CLI(); //disable all interrupts SPL=0xff; SPH=0x00; XDIV = 0x00; //XTAL divider XMCRA = 0x00; //external MEMORY WTD_off(); port_init(); MCUCR = 0x00; EICRA = 0x00; //extended ext ints EICRB = 0x00; //extended ext ints EIMSK = 0x00; TIMSK = 0x00; //timer interrupt sources ETIMSK = 0x00; //extended timer interrupt sources SEI(); //re-enable interrupts //all peripherals are now initialized } void main(void) { init_devices(); PORTA = 0x55; } /*****************************************************/ /*********************************************/ 為什么我的PORT口輸出是0xff,不是0x55呢? 感覺是程序跑飛了!是不是還要對(duì)某些寄存器進(jìn)行設(shè)置嗎? 我沒有用外部SRAM和外部ROM。 |
| 2樓: | >>參與討論 |
| 作者: zsmbj 于 2006/10/17 14:56:00 發(fā)布:
如下: void main(void) { init_devices(); PORTA = 0x55; while(1); } |
|
|
|
| 免費(fèi)注冊(cè)為維庫(kù)電子開發(fā)網(wǎng)會(huì)員,參與電子工程師社區(qū)討論,點(diǎn)此進(jìn)入 |
Copyright © 1998-2006 m.58mhw.cn 浙ICP證030469號(hào) |