B

Berg

Members
  • Публикации

    58
  • Зарегистрирован

  • Посещение

Репутация

9 Обычный

О Berg

  • Звание
    Осваивающийся

Информация

  • Пол
    Мужчина

Электроника

  • Стаж в электронике
    6-10 лет

Посетители профиля

270 просмотров профиля
  1. B

    Если я перейду на СТМ я стану крутым "старичком"? Образно говоря. Это все равно что мотогонщик подойдет к велогонщику и скажет - "ты так и будешь всю жизнь крутить педали?" Как то со стороны все это выглядит как замануха в секту свидетелей стм.
  2. B

    Еще паяльный фен купите и лупу помощнее. Ув. dosikus, не могли бы вы перечислить список устройств, которые вы создали самостоятельно на мк СТМ. Всегда было интересно, что создают люди на мк СТМ, которые советуют новичкам с нулевыми знаниями именно эти мк.
  3. B

    Откуда же нам знать. Может вы их не разрешили глобально и/или конкретно для rx.
  4. B

    как минимум UART_String("AT+CSCS=\"GSM\"\r"); // кодировка GSM (ASCII) и номер обрамляется в кавычки UART_String ("AT+CMGS=\"+79100000000\"\r"); что у вас за модуль? вы его на компе в терминалке гоняли?
  5. B

    Ну тут все ясно как божий день. #include <avr/io.h> #include <stdlib.h> char rx_buffer[] = "T:21.33 E:0 B:73.0";// к примеру по uart нам прилетело это char T[7], E[7], B[7]; float Temperatura, Energy, Barrel; int main(void) { char i = 0; while(rx_buffer[i] != '\0'){ if(rx_buffer[i] == 'T'){ for(char r=0; r<7; r++){ if(rx_buffer[i+r+2] == ' ') break; T[r] = rx_buffer[i+2+r]; } } if(rx_buffer[i] == 'E'){ for(int r=0; r<7; r++){ if(rx_buffer[i+r+2] == ' ') break; E[r] = rx_buffer[i+2+r]; } } if(rx_buffer[i] == 'B'){ for(int r=0; r<7; r++){ if(rx_buffer[i+r+2] == '\0') break; B[r] = rx_buffer[i+2+r]; } } i++; } Temperatura = atof(T); Energy = atof(E); Barrel = atof(B); while(1); } В массиве T[] будет строка "21.33", в E[] будет "0", в B[] будет "73.0" Если данные нужно будет обрабатывать переменные: Temperatura=21.33, Energy=0, Barrel=73
  6. B

    Вы нас переоцениваете в области экстрасенсорики. Вот рабочий примерчик для сравнения. uart_wrem.zip
  7. B

    Я делал так: после того как убедились, что GSM модуль полностью запустился и готов к работе Str_Uart_Send("ATE0\r"); // выключаем эхо Str_Uart_Send("AT+CMGF=1\r"); // текстовый формат Str_Uart_Send("AT+CSCS=\"GSM\"\r"); // кодировка GSM (ASCII) Str_Uart_Send("AT+CMGS=\"+79100000000\"\r"); Str_Uart_Send("Battery: "); unsigned char battery_wrem = battery; unsigned char desyatok = 0; while(battery_wrem >= 10){battery_wrem = battery_wrem - 10; desyatok++;} UARTSend(0x30 + desyatok); _delay_ms(200); UARTSend(0x2E); _delay_ms(200); // точка UARTSend(0x30 + battery_wrem); _delay_ms(200); UARTSend(0x1A); // код конца текста смс и отправка В функции отправки строк, после каждой передачи строки выдерживал паузу 200мс, с передачей отдельного символа как видим так же. Возможно пауза и завышена, но она нужна, чтобы модуль успел обработать принятое. Пробовал 100мс - не прокатило, дальше тестить лень было. Бонус: Str_Uart_Send("ATD+79100000000;\r"); // дозвон ... Str_Uart_Send("ATH\r"); // кладем трубку Str_Uart_Send("ATD#100#\r"); // запрос баланса
  8. B

    Взять мобильник или другую фигню с фото/видео камерой, направить на объектив и наблюдать на экране гаджета наличие мерцаний ик светодиода, при нажатии кнопок.
  9. переполняете переменную tmp и не правильно вычисляете среднее значение вот так попробуйте: ... for(int i=0; i<32; i++){ ... return tmp/32;
  10. B

    http://esxema.ru/?p=4509
  11. хотя не., все верно., это я тупанул скопипастил ваш код, все напряжения по схеме такие же, на экране 1023.0 и 12.3 протеус такой же.., чудеса прям позвонил на "Битву экстрасенсов", сказали пусть проверит та ли программа залита в камень
  12. а ежели так ... for (int i=0;i<16;i++) ... return tmp>>4; -------------------------------------------------------------- 2.56v - 1024 1024 * 32 = 32768 https://im2-tub-ru.yandex.net/i?id=a0d29535a0c8c38ecdcbd91039c39619-l&n=13
  13. B

    https://geektimes.ru/post/255772/ почитать - понять, переделать на мега16, добавить канал, прикрутить кнопки
  14. B

    не не, ATMega328, ATMega168, ATMega88 и ряд других "мег" имеет CLKDIV8 (Divide clock by 8) , при чем установленный по умолчанию.
  15. B

    Для большинства ваших задач по изучению этого МК будет достаточно тактирования от Int Rc 1,2,4,8MHz, даже для часов, т.к. в mega8 имеется таймер c возможностью настройки под RTC(часы реального времени) с кварцем 32768Hz