Перейти к содержанию

BiBOX

Members
  • Постов

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

  • Посещение

Весь контент BiBOX

  1. Начал изучать stm32.Сразу смутило что все видео уроки в интернете начинаются с установки заголовочных файлов и каких-то там непонятных действиях в них,что-то раскоментируют и т.д. Решил разобраться что такое заголовочные файлы,но есть загвоздки в самом начале. 1. Сразу не понятно что в этой строчке такое __STM32F10x_H?Это имя макроса? #ifndef __STM32F10x_H // тут как я понял компил проверяет не был ли __STM32F10x_H раньше подключен #define __STM32F10x_H // если не был то подключает Обычно пишется же #define TRUE 1 // то есть если компил увидет true то заменит его на 1, а тут просто __STM32F10x_H
  2. Всем спасибо.Решил C++ изучать.Скачал книгу c++ для чайников,начну изучать потихоньку.Быдлокодю для МК на С)
  3. У меня такой вопрос.Есть желание научится писать программы для компьютера,которые бы взаимодействовали с МК.Вот сейчас хотелось бы попробовать передавать с компа 0 или 1 и МК бы выполнял определенные действия после получения этих данных(пока передаю данные с терминала).Или сделать простенький регистратор,который бы отмечал на графике значение байта,который МК будет передавать раз в 10 минут(типа температура за окном или другие данные).Можете посоветовать какие-нибудь программы простенькие или только VS и изучение C++ мне в этом помогут?
  4. А можно ли в _delay_us(1.2); использовать не целочисленные значения?
  5. Приветствую всех.Вопрос такой. Есть GPS модуль,он по уарт передает данные в формате $GPVTG,165.48,T,,M,0.03,N,0.06,K,A*37 И таких строк несколько. Меня интересует пока только данная строчка,так как мне нужна скорость.Я нахожу в посылках $,то есть начало строки и остальные байты закидываю в массив пока не придет байт 13,то есть возврат каретки.И вот теперь мне интересно как мне в массиве искать эту самую скорость,пока только додумался считать запятые (44 в Dec),то есть скорость это данные которые расположены между 7 и 8 запятыми.Может кто подскажет более умный способ?
  6. Скажите,почему первый раз выполняется прерывание,а потом нет. Если sei убрать из прерывания,все работает.Кроме прерывания в программе ничего нет while(1);
  7. Поставил LM358N, входы не зависят теперь друг от друга.Чудеса.И в мультисим,если не поменять ne5532, то показывает на выходе напряжение 190 Киловольт.Поставил lm358 и все четко стало. А зачем диоды у ne5532 между входами?Реально,пока разница меньше 0,7 вольта,входы независимы,чуть больше 0,7 один начинает тянуть другой.
  8. Здоровья хватает.А вот операционники почему шалят,не пойму.Уже два поменял.
  9. О макете.Может это быть из за питания 5 вольт?(его так же смотрел,оно неизменно)
  10. А почему когда я меняю сопротивление у резистора R3 и тем самым снижаю потенциал на входе,потенциал другого входа так же начинает снижаться?
  11. Здравствуйте.Встала задача при достижении определенной температуры в комнате,включать вентилятор.Собрал такую схему. В итоге в зависимости от температуры термосопротивления ( R2 обозначение на схеме) происходит переключение компаратора и подается сигнал на транзистор,а тот в свою очередь включает реле.И меня смущает один недостаток,нет гистерезиса.Думал сделать еще одно реле и последовательно подстроечному резистору ( R3 обозначение на схеме) ,поставить резистор,что бы когда срабатывало реле,оно шунтировало дополнительное сопротивление и напряжение уставки смещалось,но это еще одно реле.Может можно сделать как-нибудь проще? Конечно проще сделать на МК,но хотелось обойтись без них,а то везде уже они у меня стоят)
  12. Почему с первой настройкой ничего не работает,а со второй настройкой все заработало?Одно и то же ведь. /*Настройка UART UBRRH=0x00; UBRRL=0x47; UCSRC = ( 1 << URSEL ) | ( 0 << UCSZ2 ) | ( 1 << UCSZ1 ) | ( 1 << UCSZ0 ); // 8 бит UCSRC = ( 1 << URSEL ) | ( 0 << UPM1 ) | ( 0 << UPM0 ) ; // контроль четности запрещен UCSRC = ( 1 << URSEL ) | ( 0 << USBS ); // два стоп бита UCSRB = ( 1 << TXEN ) | ( 0 << RXEN ); */ //настройка скорости обмена UBRRH = 0; UBRRL =0x47; //8 бит данных, 1 стоп бит, без контроля четности UCSRC = ( 1 << URSEL ) | ( 1 << UCSZ1 ) | ( 1 << UCSZ0 ); //разрешить прием и передачу данных UCSRB = ( 1 << TXEN ) | ( 1 <<RXEN );
  13. Рано обрадовался,проблема еще есть и она в уарт. Оставил только уарт работать,а он оказывается работать не работает( Настройка на 9600,а в терминале вместо положенных 0x55 выдает 0xAC
  14. Все,разобрался.Дело было в скорости не 9600,а 19200. P.S. Рано обрадовался,со скоростью все норм.Ошибка еще есть.
  15. Написал простую программу для ацп и уарт.Возникла проблема.Данные передаются на порт B и по усарту.Так вот при подаче на вход ацп 0 вольт,происходит следующее То есть PB6 всегда в единице.Почему так может быть?
  16. Может кто уже подправит этот пункт правил,так как он очень странно сформулирован. 9. Цитировать предыдущее сообщение полностью. Цитируйте только те сообщения, которые стоят дальше, чем предыдущее (допускается если цитата не более 3-х строк). Теперь суть изложу по предложениям. В первом предложении четко понятно,что запрещено цитировать предложение предыдущее только ПОЛНОСТЬЮ,то есть непосредственно перед настоящим,к примеру моим.Хотя так же немного муторно,полностью в смысле полостью его цитировать или полностью запрещено в смысле любые варианты.Далее написано,можно цитировать другие,кроме предыдущего,тут то же все понятно.В скобках совсем не понятно к каким сообщениям это относится.Допускается любая цитата объемом не более трех строк любого сообщения,кроме предыдущего или допускается цитата предыдущего,но из него цитировать не более трех строк и полное цитирование сообщения,если оно не является предыдущим? (допускается любая цитата не более 3-х строк) или (допускается цитата предыдущего,только не более 3-х строк из сообщения)
  17. То есть у ТТЛ ,судя по этой схеме Ток через нижнее плечо будет больше чем через верхнее,так как там стоит резистор?В этом весь сыр-бор?
  18. Меня удивила эта фраза-И какой идиот посоветовал Вам цеплять светодиод оптрона между выходом и общей шиной? Вот я и призадумался,а почему нельзя?
  19. Как я понимаю,дело в том,что у Вас огромные потери динамические,то есть из-за слишком большого номинала сопротивлений,через которые происходит процесс заряда емкости затвора транзистора и происходит очень долго.Получается что транзистор полевой работает не в ключевом режиме очень продолжительное время.То есть время с момента появления токопроводящего канала до полного открытия транзистора,слишком большое.Говорю сразу,могу ошибаться,так как новичок.
  20. Я немного не понял,почему нельзя ставить вход оптрона между землей и выходом МК,если при вытекающем токе 10 мА,напряжение на выходном пине МК при 25 градусах будет 4.7 вольт.Соответственно 4.7 минус 1.2 падение на диоде,получется 3.5 вольта разделить на 0.01 А=350 Ом.Или Вы о неправильном номинале резистора на схеме R1?
  21. После диодного моста 34 вольта,конденсаторы стоят после него на 35 вольт.Можно так оставить? И можно ли понижать напряжение,установив последовательно три диода после диодного моста?
  22. То есть строчка Если началась обработка какого-нибудь прерывания, никакое другое не может быть вызвано, даже с большим приоритетом Не верна? Вот еще чего там есть -При вызове обработчика любого прерывания бит глобального разрешения прерываний I регистра SREG (status register - регистр состояния) сбрасывается в "0"и только по завершении обработки прерывания снова устанавливается в "1" и разрешает начать обработку следующего прерывания в очереди. Получается пока работает обработчик,все прерывания запрещаются или не правильно понимаю?
  23. Прочитал такую строчку - Если началась обработка какого-нибудь прерывания, никакое другое не может быть вызвано, даже с большим приоритетом. Но ведь команда reset это то же прерывание,получается если я ножку reset подтяну к земле,в момент когда прерывание от int0 сработало,микроконтроллер не сбросится пока не закончит работу обработчик прерываний от int0?
  24. Точно,главное же что бы таймер не успел досчитать до 1 секунды)Спасибо.
×
×
  • Создать...