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

📄 handy.c

📁 ist a file to programm. please laberkopf contact me not
💻 C
字号:
/*############################################################################
 Copyright:      Radig Ulrich  mailto: mail@ulrichradig.de
 Author:         Radig Ulrich
 Remarks:        
 known Problems: none
 Version:        28.05.2004
 Description:    
############################################################################*/

#include <main.h>
#include <handy.h>

//############################################################################
//Routine f黵 die Serielle Ausgabe
int uart_putchar (char c){
//############################################################################
	if (c == '\n')
		uart_putchar('\r');
	//Warten solange bis Zeichen gesendet wurde
	while(!(USR & (1<<UDRE)));
	//Ausgabe des Zeichens
	UDR = c;
	return (0);
};
//############################################################################
//Routine f黵 die Serielle Ausgabe
int uart_getchar (void){
//############################################################################
	while(!(USR & (1<<RXC)));
	return(UDR);
};

//############################################################################
//Routine f黵 die Serielle Ausgabe
void uart_clear (void){
//############################################################################
	unsigned char a;
	for (char c=0;c<10;c++){	
		a = UDR;
	}
};

//############################################################################
//INstallation der Seriellen Schnittstelle
void Handy_Init (void){
//############################################################################
	//Enable TXEN im Register UCR TX-Data Enable
	UCR=(1 << TXEN | 1<<RXEN);
	//Teiler wird gesetzt 
	UBRR=(SYSCLK / (BAUD_RATE * 16L) - 1);
	
	//鰂fnet einen Kanal f黵 printf (STDOUT)
	fdevopen (uart_putchar, uart_getchar);
};
//############################################################################
void Handy_Time (	unsigned char *year,unsigned char *month,
					unsigned char *day,unsigned char *hour,
					unsigned char *minute,unsigned char *secound){
//############################################################################
	unsigned char tmp[30];
	unsigned int var[5];
	uart_clear();
	printf("at+cclk?\r\n");
	gets(tmp);
	scanf("+CCLK: \"%2d/%2d/%2d,%2d:%2d:%2d+  \"\r\n",&var[0],&var[1],
														&var[2],&var[3],
														&var[4],&var[5]);
	*year = var[0];
	*month = var[1];
	*day = var[2];
	*hour= var[3];
	*minute = var[4];
	*secound = var[5];
};

//############################################################################
char Send_SMS (char* zielnummer,char* nachricht){
//############################################################################
	unsigned char tmp1 = 0;
	unsigned char tmp2 = 1;
	unsigned char tmp3 = 0;
	unsigned char tmp4 = 0;
	unsigned char nachrichtneu[49];
	unsigned char zielnummerneu[16];
	unsigned char shift = 0;	
	//erzeugen des Nachrichten Strings
	while (nachricht[tmp1] != 0){
		nachrichtneu[tmp2] = (nachricht[tmp1]&0x7F)>>shift;
		if (shift != 0){
			nachrichtneu[tmp2-1] |= (nachricht[tmp1]&((1<<shift)-1))<<(8-shift);
			};
		shift++;
		tmp1++;
		if (shift == 8){
			shift=0;
		}
		else{
			tmp2++;
		};
	};
	nachrichtneu[0]= tmp1;
	
	//erzeugen des Ziehlnummern Strings
	while (zielnummer[tmp3] !=0){
	tmp4 = zielnummer[tmp3+1];
	zielnummerneu[tmp3+1] = zielnummer[tmp3];
	if (tmp4 == 0){
		zielnummerneu[tmp3] = 'F';
		tmp3=tmp3 + 2;
		zielnummerneu[tmp3] = 0x0;
		break;
	};
	zielnummerneu[tmp3] = tmp4;
	tmp3=tmp3 + 2;
	zielnummerneu[tmp3] = 0x0;
	};
	
	//Senden der Endg黮tigen SMS ans Handy
	printf("at+cmgs=%i\r\n",(tmp2+(tmp3/2)+0x07));
	while(uart_getchar()!=' ');
	//Adresse des zu verwendenden SMSC (optional)
	printf("0791947101670000");
	//Header1
	printf("113C");
	//Ziehlnummer
	if(zielnummerneu[tmp3-2] =='F'){
	tmp3--;
	};
	printf("%02X91",tmp3);
	printf(zielnummerneu);
	//Header2
	printf("0000A8");
	//Senden Nachrichten String
	for (tmp1 = 0;tmp1<tmp2;tmp1++){
		printf("%02X", nachrichtneu[tmp1]);
	};
	printf("%c",0x1a);
	gets(nachrichtneu);
	gets(nachrichtneu);
	if(nachrichtneu[0]=='+'){
		return (0);
	};
return (1);
}





⌨️ 快捷键说明

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