Witam wszystkich,
Jestem w trakcie tworzenia projektu stacji pogodowej, która wysyła informacje poprzez SMS z siemensa s55 do mojego telefonu. Schemat elektryczny jest w załączniku.
Problem w tym, że o ile komunikacja z komputerem PC jest prawidłowa, o tyle telefon nie daje, żadnej odpowiedzi. Telefon jest zasilany z własnej baterii, komunikacja poprzez firmowy kabel RS-232 siemensa. Jak na razie korzystam z wewnętrznego kwarcu 8 MHz.
Bardzo proszę o pomoc w rozwiązaniu problemu.
Przesyłam też kod programu(zamiast wysyłania smsów jest tutaj próba dzwonienia, która również nie działa):
Jestem w trakcie tworzenia projektu stacji pogodowej, która wysyła informacje poprzez SMS z siemensa s55 do mojego telefonu. Schemat elektryczny jest w załączniku.
Problem w tym, że o ile komunikacja z komputerem PC jest prawidłowa, o tyle telefon nie daje, żadnej odpowiedzi. Telefon jest zasilany z własnej baterii, komunikacja poprzez firmowy kabel RS-232 siemensa. Jak na razie korzystam z wewnętrznego kwarcu 8 MHz.
Bardzo proszę o pomoc w rozwiązaniu problemu.
Przesyłam też kod programu(zamiast wysyłania smsów jest tutaj próba dzwonienia, która również nie działa):
#include <inttypes.h>
#include <avr/io.h>
#include <avr/interrupt.h>
#include <string.h>
#include <stdio.h>
#define POWER_SUPPLY 5.1
#define F_CPU 8000000UL // 1MHz
#define UART_BAUD 19200UL
#define _UBBR_ ((F_CPU/(16*UART_BAUD))-1)
/*USART*/
void USART_Init( unsigned int baud_reg)
{
UBRRH = (unsigned char)(baud_reg>>8);
UBRRL = (unsigned char)baud_reg;
UCSRC = (1<<URSEL)/*|(1<<USBS)*/|(3<<UCSZ0);
UCSRB = (1<<RXEN)|(1<<TXEN);
/* Set frame format: 8data, 2stop bit no parity */
}
void USART_Transmit( unsigned char data )
{
while ( !( UCSRA & (1<<UDRE)) ); /* Wait for empty transmit buffer */
UDR = data; /* Put data into buffer, sends the data */
}
unsigned char USART_Receive( void )
{
while ( !(UCSRA & (1<<RXC)) ); /* Wait for data to be received */
return UDR; /* Get and return received data from buffer */
}
void USART_Flush( void )
{
unsigned char dummy;
while ( UCSRA & (1<<RXC) ) dummy = UDR;
}
void USART_TransmitString (char *str)
{
while ((*str != 0) /*&& (*str != 10)*/) USART_Transmit (*str++);
}
void USART_ReceiveString (char *str)
{
do
{
(*str++) = USART_Receive();
}while(*str != 0);
}
/*GŁÓWNA FUNKCJA PROGRAMU*/
int main(void)
{
USART_Init(_UBBR_);
DDRC = 0x03;
PORTC = 0xFF;
for(i = 0;i<10000;i++)
asm volatile ("nop"::);
if((PINC & 0x04) == 0)//Jeśli zworka jest nałożona
{
USART_TransmitString("ATD111111111\n");
}
}
