⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 bidtu.i

📁 板上资源: LM2576电源
💻 I
📖 第 1 页 / 共 2 页
字号:
{
PORTA.0                  = 1;        
delay_ms(100);
PORTA.0                  = 0;        
delay_ms(30);   

}
if ((dtutype == 4) || (dtutype == 5) || (dtutype == 6))   
{
PORTA.0                  = 1;        
PORTA.0                  = 0;        
delay_ms(150);  
PORTA.0                  = 1;        
delay_ms(500);  
}
delay_ms(1000);         
}

void powerdowndtu(char dtutype)
{
if ((dtutype == 2) || (dtutype == 3))                 
{
PORTA.0                  = 1;        
delay_ms(100);
PORTA.0                  = 0;        
delay_ms(2000); 
PORTA.0                  = 1;        
}
}

void sendAT(char atcom[])       
{                 
char data;
int i;
i = 0;
while (atcom[i] != 0)
{
data = atcom[i];
putchar1(data);
i++;
}
}          

void sendstr(char atcom[])      
{                 
char data;
int i;
i = 0;
while (atcom[i] != 0)
{
data = atcom[i];
putchar0(data);
i++;
}
}          

unsigned int str_hex(unsigned char *str,unsigned char *hex)
{
unsigned char ctmp, ctmp1,half;
unsigned int num=0;
do{
do{
half = 0;
ctmp = *str;
if(!ctmp) break;
str++;
}while((ctmp == 0x20)||(ctmp == 0x2c)||(ctmp == '\t'));
if(!ctmp) break;
if(ctmp>='a') ctmp = ctmp -'a' + 10;
else if(ctmp>='A') ctmp = ctmp -'A'+ 10;
else ctmp=ctmp-'0';
ctmp=ctmp<<4;
half = 1;
ctmp1 = *str;
if(!ctmp1) break;
str++;
if((ctmp1 == 0x20)||(ctmp1 == 0x2c)||(ctmp1 == '\t'))
{
ctmp = ctmp>>4;
ctmp1 = 0;
}
else if(ctmp1>='a') ctmp1 = ctmp1 - 'a' + 10;
else if(ctmp1>='A') ctmp1 = ctmp1 - 'A' + 10;
else ctmp1 = ctmp1 - '0';
ctmp += ctmp1;
*hex = ctmp;
hex++;
num++;
}while(1);
if(half)
{
ctmp = ctmp>>4;
*hex = ctmp;
num++;
}
return(num);
}

void setbandrate(unsigned char bandtype) 
{

unsigned int UBRRVAL;
unsigned char BANDRATE[16];

BANDRATE[0] = 0;
UBRRVAL = 71;            
switch (bandtype)
{
case 1: UBRRVAL = 287;
strcatf(BANDRATE, "AT+IPR=2400\r\n"); 
break;
case 2: UBRRVAL = 143;
strcatf(BANDRATE, "AT+IPR=4800\r\n");
break;
case 3: UBRRVAL = 71;
strcatf(BANDRATE, "AT+IPR=9600\r\n");
break;
case 4: UBRRVAL = 47;
strcatf(BANDRATE, "AT+IPR=14400\r\n");
break;
case 5: UBRRVAL = 35;
strcatf(BANDRATE, "AT+IPR=19200\r\n");
break;
case 6: UBRRVAL = 23;
strcatf(BANDRATE, "AT+IPR=28800\r\n");
break;
case 7: UBRRVAL = 17;
strcatf(BANDRATE, "AT+IPR=38400\r\n");
break;
case 8: UBRRVAL = 11;
strcatf(BANDRATE, "AT+IPR=57600\r\n");
break;
case 9: UBRRVAL = 5;
strcatf(BANDRATE, "AT+IPR=115200\r\n");
break;
}

sendAT(ate0);
delay_ms(100);
while (rx_counter1 > 0)
{
getchar1();
}
sendAT(BANDRATE);               
delay_ms(100);
while (rx_counter1 > 0)
{
getchar1();
}
sendAT(ate1); 
e_bandtype = bandtype;          

UCSR0A=0x00;
UCSR0B=0x98;
(*(unsigned char *) 0x95)=0x06;
(*(unsigned char *) 0x90)=UBRRVAL >> 8;
UBRR0L=UBRRVAL & 0x00ff;

(*(unsigned char *) 0x9b)=0x00;
(*(unsigned char *) 0x9a)=0x98;
(*(unsigned char *) 0x9d)=0x06;
(*(unsigned char *) 0x98)=UBRRVAL >> 8;
(*(unsigned char *) 0x99)=UBRRVAL & 0x00ff;  
delay_ms(1000);
}

void  deal_with_command()
{
unsigned char rec_buff[40];
unsigned char i;

if (HEX == 0)
{    
putsf(" \r \r");
printf("DTU>");           
getstr(comd_buff,256); 

if (comd_buff[0] == 0) return;
printf(" \r");                  
switch(comd_buff[0])
{
case 'h':
comd_buff[0]='\0' ;
if((comd_buff[1]=='l')&&(comd_buff[2]=='p')&&(comd_buff[3]==0))
{      
putsf(" \r \r");
sendstr(dtuname);
putsf(" (");
sendstr(dtuver);
putsf(") Wireless MODEM Command Sets Introduction:\r");                        
putsf(" \r");
putsf("bdr=x     Reset the MODEM bandrate\r");
putsf("          x=1:2400/2:4800/3:9600/4:14400/5:19200/6:28800/7:38400/8:57600/9:115200\r");
putsf("dtu       Show dtu module name, and save it's type into mcu eeprom\r");               
putsf("eon       Open the ECHO mode\r");     
putsf("eof       Close the ECHO mode\r"); 
putsf("hlp       Show this help menu\r");                
putsf("mod       Show hardware module name\r");

putsf("trs       Enter data bridge mode\r");  
putsf("tst       User defined command\r");     
putsf("rst       Reset MCU(not DTU)\r");     
putsf("ver       Show firmware version\r");               

}
else  
{       
putsf(" \r");           
putsf("Command Error!,please input again. input \'hlp\' for command details.\r");
}
break;
case 0x41:          
comd_buff[0] = '\0';
if ((comd_buff[1]==0x56)&&(comd_buff[2]==0x52)&&(comd_buff[3]==0x55)&&(comd_buff[4]==0x42))
{
#pragma optsize-
WDTCR=0x18;
WDTCR=0x08;
while (1);      
}       
case 'b':
comd_buff[0] = '\0';
if((comd_buff[1]=='d')&&(comd_buff[2]=='r')&&(comd_buff[3]=='=')&&(comd_buff[5]==0))
{
putsf(" \r");
putsf("OK! \r");
putsf("Then please set the right bandrate of your computer!\r");
setbandrate(comd_buff[4] - 0x30);
}
else
{
putsf(" \r");
putsf("Command Error!,please input again. input \'hlp\' for command details.\r");

}
break;          
case 'v':
comd_buff[0] = '\0' ;
if((comd_buff[1]=='e')&&(comd_buff[2]=='r')&&(comd_buff[3]==0))
{      
putsf(" \r");
sendstr(dtuver);
putsf(" \r");   
}
else
{
putsf(" \r");
putsf("Command Error!,please input again. input \'hlp\' for command details.\r");

}
break;      
case 'm':
comd_buff[0]='\0' ;
if((comd_buff[1]=='o')&&(comd_buff[2]=='d')&&(comd_buff[3]==0))
{      
putsf(" \r");
sendstr(dtuname);
putsf(" \r");   
}
else
{
putsf(" \r");
putsf("Command Error!,please input again. input \'hlp\' for command details.\r");
}
break;     
case 'p':
comd_buff[0]='\0' ;
if((comd_buff[1]=='o')&&(comd_buff[2]=='n')&&(comd_buff[3]==0))
{      
putsf(" \r");
dtutype = e_dtutype;
powerondtu(2);
putsf("DTU is powered on!");
putsf(" \r");   
}
else
{
if((comd_buff[1]=='o')&&(comd_buff[2]=='d')&&(comd_buff[3]==0))
{
putsf(" \r");
dtutype = e_dtutype;
powerdowndtu(dtutype);
putsf("DTU is powered down!");
putsf(" \r");        
}
else
{
putsf(" \r");
putsf("Command Error!,please input again. input \'hlp\' for command details.\r");
}
}
break;     
case 'd':
comd_buff[0]='\0' ;
if((comd_buff[1]=='t')&&(comd_buff[2]=='u')&&(comd_buff[3]==0))
{      
putsf(" \r");
sendAT(atgmm);                             
delay_ms(100);
i = 0;
while (rx_counter1 > 0) 
{
rec_buff[i] = getchar1();
i ++;                            
}                   
dtutype = 0;                    
if (strstrf(rec_buff, "GTM900B") != 0) dtutype = 2; 
if (strstrf(rec_buff, "GTM900A") != 0) dtutype = 3;
if (strstrf(rec_buff, "TC35") != 0) dtutype = 4;
if (strstrf(rec_buff, "MC35") != 0) dtutype = 5;
if (strstrf(rec_buff, "MC39") != 0) dtutype = 6;
if (strstrf(rec_buff, "Model 199") != 0) dtutype = 1;   
if (dtutype == 1) sendstr(dtutype1);
if (dtutype == 2) sendstr(dtutype2);
if (dtutype == 3) sendstr(dtutype3);
if (dtutype == 4) sendstr(dtutype4);
if (dtutype == 5) sendstr(dtutype5);
if (dtutype == 6) sendstr(dtutype6);
if (dtutype == 0) sendstr(dtutype0);
e_dtutype = dtutype;            
putsf(" \r");
}
else
{
putsf(" \r");
putsf("Command Error!,please input again. input \'hlp\' for command details.\r");

}
break;     
case 't':
comd_buff[0]='\0' ;
if((comd_buff[1]=='r')&&(comd_buff[2]=='s')&&(comd_buff[3]==0))
{      
if (authok == 1)
{
if (simok == 1)
{
putsf(" \r");
putsf("Enter data bridge mode......\r");  
while (rx_counter1 > 0) getchar1();             
transmode = 1;                                  
} 
else
{
putsf(" \r");
putsf("SIM Card verification failure!\r");  
transmode = 0;                              
}
}
else
{
putsf(" \r");
putsf("Must be Authenticated!\r");  
}
}
else
{
if((comd_buff[1]=='s')&&(comd_buff[2]=='t')&&(comd_buff[3]==0))
{
putsf(" \r");
if (PINC.1) putsf("DTU ON\r");
if (!PINC.1) putsf("DTU OFF\r");
}
else
{
putsf(" \r");
putsf("Command Error!,please input again. input \'hlp\' for command details.\r");
}  
}
break;     
case 'r':
comd_buff[0]='\0' ;
if((comd_buff[1]=='s')&&(comd_buff[2]=='t')&&(comd_buff[3]==0))
{      
putsf(" \r");
putsf("Reseting......");
#pragma optsize-
WDTCR=0x18;
WDTCR=0x08;
while (1);      
}
else
{
putsf(" \r");
putsf("Command Error!,please input again. input \'hlp\' for command details.\r");

}
break;    
case 'e':
comd_buff[0]='\0' ;
if((comd_buff[1]=='o')&&(comd_buff[2]=='n')&&(comd_buff[3]==0))
{      
ECHO = 1;
putsf("\r");
putsf("ECHO mode Open\r");
}
else
{
if((comd_buff[1]=='o')&&(comd_buff[2]=='f')&&(comd_buff[3]==0))
{      
ECHO = 0;
putsf("\r");
putsf("ECHO mode Close\r");
}
else
{                        
putsf(" \r");
putsf("Command Error!,please input again. input \'hlp\' for command details.\r");
}
}
break;    
default:
putsf(" \r");
putsf("Command Error!,please input again. input \'hlp\' for command details.\r");         
break;
}     

return;  
}  
}

void main(void)
{
unsigned char i, bandtype;
initmcu();

bandtype = blank[0];           

dtutype = e_dtutype;    
bandtype = e_bandtype;  

powerondtu(dtutype);    
#asm("sei")   

setbandrate(bandtype);          

putsf(" \r \r");
sendstr(dtuname);
putsf(" Wireless MODEM ");
sendstr(dtuver);
putsf(" \r");

putsf("Designed by Appcat. Copyleft(c) 2008 All rights Opened\r");     

while (1)
{
while (transmode == 0) deal_with_command();
};
}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -