資源簡介
atmega16為核心的modbus通信系統

代碼片段和文件信息
//ICC-AVR?application?builder?:?2004-10-27?10:06:29
//?Target?:?M16
//?Crystal:?8.0000Mhz
#include?“main.h“
//初始化變量
void?varInit(void)
{
}//void?valInit(void)
void?port_init(void)
{
? ? //?
?PORTA?=?0xF0; //
?DDRA??=?0x00; //
?PORTB?=?0xFF; //
?DDRB??=?0xFD; //
?PORTC?=?0xFF;? //
?DDRC??=?0x00; //
?PORTD?=?0xFF; //
?DDRD??=?0xFA; //
}//void?port_init(void)
//Watchdog?initialisation
//?prescale:?2048K?cycles
void?watchdog_init(void)
{
?WDR();?//this?prevents?a?timout?on?enabling
?WDTCR?=?0x0F;?//WATCHDOG?ENABLED?-?dont?forget?to?issue?WDRs
}//void?watchdog_init(void)
void?timer0_init(void)
{
?//初始化1ms?定時中斷
?TCCR0?=?0x00;
?TIFR??=?0x00;??
?TCNT0?=?0x83;
?TCCR0?=?0x03;
}//void?timer0_init(void)
//ADC?initialisation
//?Conversion?time:?52uS
void?adc_init(void)
{
?uint8?adcMux?=?0;
?
?ADCSR?=?0x00;?//disable?adc
?ADMUX?=?0xc0?|(adcMux&0x0f);?//select?adc?input?0???2.56V參考源
?ACSR??=?0x80;
?ADCSR?=?0x85;?//使能ADC?32分頻
}//void?adc_init(void)
//UART0?initialisation
//?desired?baud?rate:?9600
//?actual:?baud?rate:9615?(0.2%)
//?char?size:?8?bit
//?parity:?Even
void?uart0_init(void)
{
?UCSRB?=?0x00;?//disable?while?setting?baud?rate
?UCSRA?=?0x00;
?UCSRC?=?0xA6;
?UBRRL?=?51;?//set?baud?rate?lo
?UBRRH?=?0x00;?//set?baud?rate?hi
?UCSRB?=?0xD8;
?
?receEnable();
}
#pragma?interrupt_handler?uart0_rx_isr:12
void?uart0_rx_isr(void)
{
? uint8?status;
?//uart?has?received?a?character?in?UDR
status?=?UCSRA;
????receBuf[receCount]?=?UDR;
????if(status?&?0x1c)??//通信出錯
???? ?checkoutError?=?2; //偶校驗出錯
?? //testRegister?=?status; ?
????receCount++;??????????//接收地址偏移寄存器加1
????receCount?&=?0x1f;????//最多一次只能接收32個字節?
????receTimeOut?=?10;????//通訊超時值
}
#pragma?interrupt_handler?uart0_tx_isr:14
void?uart0_tx_isr(void)
{
?//character?has?been?transmitted
????if(sendPosi?????{
????????sendPosi++;
????????UDR?=?sendBuf[sendPosi];
????}
????else
????{
????????receEnable();????//發送完后將485置于接收狀態
????????receCount?=?0;???//清接收地址偏移寄存器
????????checkoutError?=?0;
????}?
}
//call?this?routine?to?initialise?all?peripherals
void?init_devices(void)
{
?//stop?errant?interrupts?until?set?up
?CLI();?//disable?all?interrupts
?port_init();
?watchdog_init();?
?timer0_init();
?adc_init();
?uart0_init();?
?MCUCR?=?0x00;
?GICR??=?0x00;
?TIMSK?=?0x01;?//timer?interrupt?sources
?SEI();?//re-enable?interrupts
?//all?peripherals?are?now?initialised
}//void?init_devices(void)
?屬性????????????大小?????日期????時間???名稱
-----------?---------??----------?-----??----
?????文件???????2605??2005-03-16?16:57??modbusM16\modbusM16\init.c
?????文件????????351??2005-03-16?17:20??modbusM16\modbusM16\init.dp2
?????文件??????16348??2005-03-16?17:20??modbusM16\modbusM16\init.lis
?????文件???????4166??2005-03-16?17:20??modbusM16\modbusM16\init.o
?????文件???????7361??2005-03-16?17:20??modbusM16\modbusM16\init.s
?????文件???????1860??2005-03-16?17:10??modbusM16\modbusM16\main.c
?????文件????????351??2005-03-16?17:20??modbusM16\modbusM16\main.dp2
?????文件????????679??2005-03-16?17:14??modbusM16\modbusM16\main.h
?????文件??????12924??2005-03-16?17:20??modbusM16\modbusM16\main.lis
?????文件???????3833??2005-03-16?17:20??modbusM16\modbusM16\main.o
?????文件???????5792??2005-03-16?17:20??modbusM16\modbusM16\main.s
?????文件??????13004??2005-03-16?17:19??modbusM16\modbusM16\modbus16.c
?????文件????????355??2005-03-16?17:20??modbusM16\modbusM16\modbus16.dp2
?????文件????????649??2005-03-16?17:19??modbusM16\modbusM16\modbus16.h
?????文件??????95034??2005-03-16?17:20??modbusM16\modbusM16\modbus16.lis
?????文件??????22362??2005-03-16?17:20??modbusM16\modbusM16\modbus16.o
?????文件??????39509??2005-03-16?17:20??modbusM16\modbusM16\modbus16.s
?????文件??????13004??2005-03-16?17:05??modbusM16\modbusM16\modbus16._c
?????文件????????649??2005-02-05?01:22??modbusM16\modbusM16\modbus16._h
?????文件??????12868??2005-03-16?17:20??modbusM16\modbusM16\modbusM16.cof
?????文件???????9220??2005-03-16?17:20??modbusM16\modbusM16\modbusM16.dbg
?????文件???????8539??2005-03-16?17:20??modbusM16\modbusM16\modbusM16.hex
?????文件?????????27??2005-03-16?17:20??modbusM16\modbusM16\modbusM16.lk
?????文件??????60493??2005-03-16?17:20??modbusM16\modbusM16\modbusM16.lst
?????文件???????1890??2005-03-16?17:20??modbusM16\modbusM16\modbusM16.mak
?????文件???????4383??2005-03-16?17:20??modbusM16\modbusM16\modbusM16.mp
?????文件????????841??2005-03-16?17:20??modbusM16\modbusM16\modbusM16.prj
?????文件?????????81??2005-03-16?16:55??modbusM16\modbusM16\MODBUSM16.SRC
?????目錄??????????0??2007-11-25?16:40??modbusM16\modbusM16
?????目錄??????????0??2007-11-25?16:40??modbusM16
............此處省略3個文件信息
- 上一篇:Nordic51822 被連接時打開廣播
- 下一篇:寒假社會實踐報告3000字
評論
共有 條評論