Форум программистов, компьютерный форум, киберфорум
Наши страницы
Микроконтроллеры Atmega AVR
Войти
Регистрация
Восстановить пароль
 
Рейтинг 4.50/4: Рейтинг темы: голосов - 4, средняя оценка - 4.50
odessa-man
0 / 0 / 0
Регистрация: 13.11.2014
Сообщений: 2
1

Отправка AT команд на Nokia6030 с Atmega16

13.11.2014, 16:20. Просмотров 782. Ответов 3
Метки нет (Все метки)

Нужна помощь в написании кода для отправки AT команд на Nokia6030 подключенную через UART к ATmega16.
Вон например есть АТ команда что бы телефон позвонил на указанный номер
ATDT 80xxxxxxxxx
Подключить телефон вроде несложно. TX(телефона)-RX(контроллера). RX(телефона)-TX(контроллера)-через резистор или стабилитрон.И к земле телефон.
А вот код написать на С не знаю как.
Помогите пожалуйста.
0
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
13.11.2014, 16:20
Ответы с готовыми решениями:

ATMega16. Cколько тактов у команд?
Где можно посмотреть, за сколько тактов выполняются те или иные команды в МК...

Автокликер ( отправка команд )
Добрый день всем. У меня есть кликер Вот скрин и сама прога...

Отправка команд в консоль
Здравствуйте, мне надо отправить в консоль команду, взятую из Edit1, Edit2,...

Отправка команд через Steam API
Ребят,не могу понять почему не хочет слать команду на пользователя. Суть...

Отправка команд на сервер через браузер
Здравствуйте, уважаемые форумчане! :) Есть идея, но как реализовать не знаю,...

3
pyzhman
791 / 485 / 66
Регистрация: 15.05.2012
Сообщений: 2,744
13.11.2014, 19:26 2
Отправить байт (суть АТ-команду)
C
1
putchar(AT_comand);
Принять ответ от телефона
C
1
byte= getchar();
0
odessa-man
0 / 0 / 0
Регистрация: 13.11.2014
Сообщений: 2
13.11.2014, 20:04  [ТС] 3
а как инициализировать UART. Нашел http://avrlab.com/node/318 код так там всё не так просто.
Если можете напишите полностью код. А то я так запутался.
0
raxp
10188 / 6571 / 492
Регистрация: 28.12.2010
Сообщений: 21,166
Записей в блоге: 1
13.11.2014, 20:58 4
C
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
/* GSM -пейджер */
#include <avr/io.h>
 
#include <avr/pgmspace.h>
#include <avr/interrupt.h>
#include <avr/signal.h>
#include <string.h>
#include "uart.h"
#include "iotn2313.h"
 
//#define nop() {asm("nop");}
#define sbi(port,bit)  port |=  (1<<(bit)) 
#define cbi(port,bit)  port &= ~(1<<(bit)) 
#define outp(port,bit) port = bit
#define inp(port) port
 
#define SIZERX 32
char arRx[SIZERX];
unsigned char posRx = 0;
 
char sSMSNUM1[13] = "+380671671234";    // в полном формате
const char sAT1[] PROGMEM = "ATD";
const char sAT2[] PROGMEM = ";\x0d";
const char sATH[] PROGMEM = "ATH\x0d";
 
void testCALL();
void Init(void);
void DiagOut(unsigned char n,unsigned int time);
void wait_1ms(unsigned char ms);
void wait_1s(unsigned char s);
 
void Init(void)
{
 
  UART_Init();
}
 
 
void DiagOut(unsigned char n,unsigned int time)
{
 
    while(n>0)
    {
        sbi(PORTD,5);
        wait_1ms(time);
        cbi(PORTD,5);
        wait_1ms(time);
        n--;
    }
    wait_1s(1);
}
 
void testCALL()
{
 
    // звонок
    DiagOut(5,25);
    UART_outstr_P(sAT1);    
           UART_outstr(sSMSNUM1);   
           UART_outstr_P(sAT2);
    DiagOut(20,250); // ожидание 10 с
           // положить трубку
    UART_outstr_P(sATH);    
}
 
void wait_1ms(unsigned char ms)
{
    while(ms)
    {
        short int i;
        for(i=0; i<500; i++)
            inp(PINB);
        ms--;
    }
}
 
void wait_1s(unsigned char sec)
{
    while(sec)
    {
        wait_1ms(250);
        wait_1ms(250);
        wait_1ms(250);
        wait_1ms(250);
        sec--;
    }
}
 
 
 
void UART_Init(void)
/* initialize uart */
{
    // set baud rate
    UBRRH = (unsigned char) BAUD_19200 >> 8;
    UBRRL = (unsigned char) BAUD_19200;    
 
    // enable RxD/TxD and ints
    UCSRB = (1<<RXCIE)|( 1 << RXEN )|( 1 << TXEN );
    sei();
}
 
void UART_outstr_P(PGM_P str)
{
    unsigned char i = 0;
    while(1)
    {
        char c = pgm_read_byte(&str[i]);
        if(!c) break;
 
        outp(UDR, c);
        loop_until_bit_is_set(UCSRA, UDRE);
        i++;
    }
}
 
void UART_outstr(char* psz)
{
    unsigned char i = 0;
    while(i < 13)
    {
        char c = psz[i];
        outp(UDR, c);
        loop_until_bit_is_set(UCSRA, UDRE);
        i++;
    }
}
 
 
int main(void)
{
    Init();
    DiagOut(3,100);
 
    while(1)
    {
    testCALL();
           } // while(1)
 
    return 0;
}
1
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
13.11.2014, 20:58

Работа с cmd.exe — отправка и прием команд
На сайте королевства есть пример работы с cmd.exe - отправки и прием команд...

Отправка SMS посредством АТ команд через мобильник
Доброго всем времени суток!!! Пречитал кучу инфы. но так и непонял как...

Отправка Url-encoded команд из приложения, разрабатываемого в Delphi
Здравствуйте, понадобилось удаленно управлять устройством семейства Netping....


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
4
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2019, vBulletin Solutions, Inc.
Рейтинг@Mail.ru