Пишу прошивку для контроллера (мега161). По идее, контроллер должен выдавать в UART команду для модема мобильного телефона (в моем случае - Sony J5).
1. Даю простую команду "ATD*101#". Мобильник молчит... ладно,
2. Подключаю к контроллеру ГиперТерминал через адаптер на MAX323, питание от USB - терминал принимает команду как и положено.
3. Подключаю мобильник к этому же адаптеру, даю ту же команду через ГиперТерминал - мобильник реагирует!
Настройки ГиперТерма не менял, даже не отключал связь.
Пробовал баловаться с завершающими символами - это те, которые везде в мануалах как <CR> обозначаются. Пробовал и "\r" и "\n" и "\r\n" и "\n\r" и даже "\r\0" - ничего не помогает!
Фрагмент кода вывода в UART:
Код: Выделить всё
void put_char( char SendC ) {
cli();
wdt_reset();
while ( UCSR0A ^ (1<<UDRE) ) {
_delay_ms(1);
}
UDR0 = SendC;
sei();
}
void put_string( char *str ) {
char sl = strlen( str );
for ( char i=0; i< sl; i++)
put_char( str[i] );
put_char( 10 );
put_char( 13 );
// put_char( 0 );
}
......
put_string("ATD*101#");
Телефон подключен к RX и TX контроллера через резисторы 200 Ом.
F - 1.8432Mhz. Скорость 9600.
Может ткнет кто-нибудь носом, что мне поможет в этой ситуации?


