GROMIT

Вопросы От Начинающих По Мк

7670 posts in this topic

Starichok    1421
6 часов назад, Alexeyslav сказал:

Любой порт так же поддерживает прерывания по перепаду уровня

где ты увидел это в АТМега8?

Share this post


Link to post
Share on other sites
COKPOWEHEU    273
В 20.05.2019 в 21:32, Mars36 сказал:

Хочу найти ресурс где можно подробно почитать про компиляцию и линковку проекта для stm32f103 в линуксе.

Вот для начала. http://we.easyelectronics.ru/STM32/ispolzovanie-gcc-dlya-stm32f100.html

Нужно будет в makefile поменять серию устройства.

В 20.05.2019 в 21:32, Mars36 сказал:

проекта для stm32f103

Тут еще важны буквы, от них зависит память устройства и линия. Для классического f103C8T6 это medium density если не ошибаюсь.

Если описать алгоритм вкратце: нужно скомпилировать main (юзерский код) и startup (настройка памяти, прерываний и всего прочего, эта штука компилируется из ассемблерного файла, предоставляемого производителем, только надо найти в нужном формате), у меня это Libraries/CMSIS/CM3/DeviceSupport/ST/STM32F10x/startup/gcc_ride7/startup_stm32f10x_ml.s. Для всей серии stm32f1x испольщуется один заголовочный файл #include <stm32f10x.h> , выбор конкретного камня задается дефайном DEVCLASS (лучше всего в makefile через флаг -D ), например -D DEVCLASS =  STM32F10X_MD. Но дополнительно надо еще указать путь к инклюдам на конкретные камни, например Libraries/CMSIS/CM3/DeviceSupport/ST/STM32F10x/

Мало того, при линковке надо еще указать распределение памяти и еще какие-то параметры. Это делается указанием линкеру файла настроек через флаг -T, например -T ld/stm32f10xC8.ld

Из того что вспомнил, вроде все. Можно бы еще упомянуть прошивку, но это уже будет зависеть от программатора. Я пробовал с stm32flash (uart bootloader) и самодельным st-link2 (прошитым через тот же stm32flash, естественно) через openocd.

Share this post


Link to post
Share on other sites
#define dirX PINB7
#define dirY PINB6
#define dirZ PIND4
#define stepX PIND1
#define stepY PIND0
#define stepZ PIND6

int massz[4]={(PORTC|=(1<<PINC5)),(PORTC|=(1<<PINC4)),(PORTC|=(1<<PINC3)),(PORTC|=(1<<PINC2))};

ISR(INT0_vect)
{
	//unsigned int i=0;
	if (PIND&(1<<dirZ))
	{
		if (PIND&(1<<stepZ))
		{
			massz[2];
		}	
		//i--;
	}
	else 
	{
		if (PIND&(1<<stepZ))
		{
			massz[0];
		}
		//i++;
		
	}
}
int main(void)
{
	INTinit();//вызываем функцию инициализации прерывания
	sei();//устанавливаем бит глобального разрешения прерываний
	port_ini();
}

что я делаю не так? настройки INT0 не привожу

 

Share this post


Link to post
Share on other sites

Старт складской программы по Wi-Fi/ Bluetooth-чипам от Espressif

На склад КОМПЭЛ поступили чипы, модули и отладочные платы от компании Espressif Systems на базе ESP8266 и ESP32. Стоимость всех изделий данной линейки – в 2-3 раза ниже ближайших аналогов, чипы занимают минимальное место на плате, энергоэффективны и универсальны в применении

Подробнее...

Demonrostov    4
10 часов назад, Дмитрий Мамедиев сказал:

что я делаю не так?

Я полагаю неправильно излагаете свои мысли в виде вопроса.

Share this post


Link to post
Share on other sites
ARV    746
Posted (edited)
10 часов назад, Дмитрий Мамедиев сказал:

if (PIND&(1<<stepZ)) { massz[2]; }

Вот этим вы что хотели сделать?

Упоминание в коде имени переменной (а элемент массива - это по сути переменная) равносильно считыванию содержимого этой переменной. Поскольку считанное значение никак не используется - компилятор просто выбросит весь этот if и в других местах аналогично.

Ага, вот еще: в main нет главного цикла, а это значит, что main завершится. После завершения main прерывания запрещаются автоматически и наступает вечный цикл. Вы именно этого поведения программы добивались?

Edited by ARV

Share this post


Link to post
Share on other sites

Вебинар Литиевые ХИТы FANSO или что нужно знать инженеру о батарейках»

20 июня компания Компэл приглашает всех желающих принять участие в вебинаре, посвященном литиевым батарейкам FANSO. На вебинаре будет рассказано о параметрах батареек, их зависимости от режима работы и эксплуатации. Будет дана информация о том, на какие параметры следует обращать внимание, выбирая литиевый ХИТ, и как избежать некоторых проблем.

Подробнее...

ARV    746
Posted (edited)

@Дмитрий Мамедиев , я вам конкретно написал: у вас в коде нет "вывести massz[2]" - что вы там ХОТИТЕ, я не в курсе, я вижу, что вы СДЕЛАЛИ. И про main я вам все написал четко и однозначно: нет цикла в main - нет никакой работы.

Edited by ARV

Share this post


Link to post
Share on other sites
Demonrostov    4
11 минуту назад, Дмитрий Мамедиев сказал:

Основная программа будет выполняться в ISR()

Основная программа должна выполняться в основном цикле. В прерывании должно быть все быстро, зашли зафиксировали ушли. И в коде своем пишите комментарии что вы хотите получить в каждой строчке своего кода. Так будет проще понять ход ваших злобных мыслей:D

Share this post


Link to post
Share on other sites
ARV    746
1 минуту назад, Дмитрий Мамедиев сказал:

а это?

Что "это" - я вам описывал ранее: это простое считывание элемента массива, никакого ВЫВОДА куда-либо чего-либо тут нет. 

Share this post


Link to post
Share on other sites
Demonrostov    4
Posted (edited)
6 минут назад, Дмитрий Мамедиев сказал:

if(....){massz[2]}

это значит- если (что-то) то {взять ячейку 2 массива massz.....} дальше что делать? Ну как минимум например что то присвоить massz[2]=5;  ну или прочитать массив а=massz[2]. у вас нет действий, о чем говорит ARV

Edited by Demonrostov

Share this post


Link to post
Share on other sites
ARV    746
5 минут назад, Дмитрий Мамедиев сказал:

бежать нужно

Успехов в спорте!

Share this post


Link to post
Share on other sites
ARV    746
1 час назад, Дмитрий Мамедиев сказал:

разве не поставит

Поставит. Только massz[2] это не делает.

Между прочим, ваш код вообще не компилируется, поскольку инициализировать массив вашими выражениями нельзя.

Share this post


Link to post
Share on other sites
ARV    746
Posted (edited)
9 минут назад, Дмитрий Мамедиев сказал:

Как так то.

А вот так. В массиве хрантся ЧИСЛА. Не ДЕЙСТВИЯ, а ЧИСЛА. Установка или сброс бита - это ДЕЙСТВИЕ. Улавиваете разницу между действием и числом?

Я ведь вам рекомендовал литературу по языку Си почитать - все продолжаете упорно игнорировать советы?

Edited by ARV

Share this post


Link to post
Share on other sites
Demonrostov    4
11 час назад, Дмитрий Мамедиев сказал:

Пойду читать.

И Proteus поюзайте, там много полезностей есть. Много вопросов можно самому решить, особенно на стадии обучения.

Share this post


Link to post
Share on other sites
dim3740    4

2 платы UNO. Общая земля, подведена к внешнему БП. Есть междупортовые связи. Вопрос как правильно подключить питание..?? . К примеру, плюс 9 в звездой на оба VIN. Делал, почему то косячит((( И еще: как объяснить, что если никакого питания на вторую плату не завожу, а в первую втыкаю ЮСБ для заливки, то светодиод Power второй в течение 2-3 сек горит? Затем гаснет.

 

Share this post


Link to post
Share on other sites
my504    499

Это паразитное питание через диоды выходных вентилей.

Share this post


Link to post
Share on other sites
my504    499
Posted (edited)
5 минут назад, Дмитрий Мамедиев сказал:

Что за... ?

Что за дисплей и куда подключил? 

Edited by my504

Share this post


Link to post
Share on other sites

Your content will need to be approved by a moderator

Guest
You are commenting as a guest. If you have an account, please sign in.
Reply to this topic...

×   Pasted as rich text.   Restore formatting

  Only 75 emoticons maximum are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

Loading...

  • Similar Content

    • By small girl
      Привет, ребят! Кто возьмется написать на С протокол взаимодействия для сети микроконтроллеров. База: STM32 с bluetooth модулем HC-06,- slave. ПК - master?

      За вознаграждение
    • By LegionKC
      Добрый день.
      Экспериментирую с платой TP4056 и MK ATmega8, конкретнее - пытаюсь собрать простенькое зарядное устройство с выводом параметров при зарядке/разрядке на АЦП МК. Для измерения тока нашел ACS712. Думаю, что получится выводить ток при зарядке (т.е. когда идет питание на TP4056 и нагрузка отключена) и при разрядке (питание выключено, нагрузка подключена). Нагрузка - резистор. Возникла проблема с измерением напряжения на АКБ. Вернее, проблема с отсутствием идей как это сделать. Может какую-нибудь схему делителя напряжения нужно сделать? Прошу помочь советом. Схему из пэинта прилагаю.
      Спасибо.
       

    • By Геннадий Быков
      Уважаемые электронщики и им сочувствующие!
      Хочу на даче собрать макет морского маяка в человеческий рост. Но для этого необходима схема управляющая светодиодами. Основное, схема должна иметь независимое питание(Солнечная панель) и быть слаботочной (5-9 вольт). Как вижу я. Маяк ориентировочно высотой 1,50-1,80 м. В маяке, с низу до верха 6 окошек (по одному 5мм светодиоду). И на верху сам маяк из 8-ми 0,5 ваттных светодиодов установленных по кругу. С наступлением темноты, включаются диоды на "1 этаже" и раз в 5-10 минут происходит действие. Диоды поэтажно (снизу вверх) начинают загораться (как будто кто-то поднимается вверх по ступеням) и после загорания самого верхнего окна, через пару секунд, включается маяк. Поочередно по кругу (эффект метеора), со скоростью 2-3 сек на круг, делает оборотов 10 и выключается. Потом в обратной последовательности гасятся окошки (светодиоды) сверху в низ и остаются два нижних, периодически и независимо включающиеся и выключающиеся (эффект присутствия). И вновь через 5-10 минут вышеописанное действие. Буду очень признателен любым советам, ссылкам, помощью. Немного умею паять, немного знаю Ардуино. Готов в разумных пределах спонсировать, разработку и сборку.
    • By Vladislav7
      Добрый день.
       
      Необходимо разработать схему для изготовления печатной платы с установленным микроконтроллером (подобрать подходящий), также подобрать все электронные компоненты и написать программу.
      Цель следующая:
      Необходимо с помощью одного контроллера управлять двумя цепями состоящими из 15 светодиодов (мощность одного = 0,1 Вт) каждая, диоды одноцветные.
      При включении одной кнопки начинает мигать одна цепь. При включении второй - вторая. Возможность одновременного включения кнопок.
      Необходим датчик индикации на кнопке, который будет мигать в такт светодиодной цепи. Принцип кнопки как у аварийной сигнализации.
       
      Спасибо.
    • Guest fujika
      By Guest fujika
      Помогите найти деталь. На месте отсутствующих, должна быть или развязка или "согласователь", примерное описание две штуки по 8 ног каждая связывают между собой аудиочип, выход на наушники и разъемы SPK_1 или (2).
      Что удалось нагуглить: в даташите на realtek alc892 есть что-то похожее но с 10 ногами и подписано как con10a.
      Зачем. Хочу подключить колонки напрямую к материнской плате и насколько я понимаю, они должны отключаться при подключении наушников, но для этого нужно впаять то что не впаяли китайцы.

  • Сообщения

    • Какая блин проницательность. Эй, демоны, закройте веки этому Вию, он всё равно читать он не умеет.
    • В первом ролике именно смесь ацетона со спиртом, но даже с чистым ацетоном у меня не вышло. Да и хрен с ним. А со смывкой то проблем особых нету, просто заметил, что растворимость моего тонера ацетоном явно намного хуже, чем в видео. Причём у него именно растворяется, а меня облезает, как старая краска от смывки. Тонер не оригинальный, уже перезаправленный. У нас заправка 300 рублей, а новый картридж тысячи две - клон, а оригинал вообще за 3 с лишним. Самсунг ML-2525.
    • два по 470 в параллель? если так то вместо двух по 470 -один на 1000. и последний можно-если влезет..а вот 330 родной номинал поставить и 330 х 50 вольт желательно. такие конденсаторы в продаже что-редкость? нафига на али за 3 кондерами ходить.
    •   Скорее всего, смываю без каких либо усилий бумажной салфеткой. Перестал перезаряжать картриджи, пользуюсь новыми совместимыми, в моём случае - 2612А для НР1022, по цене, у нас, почти одно и тоже с перезарядкой.  
    • Всем привет. Имеется автомобильный усилитель, пыхнуло все 4 транзистора irf3205, как я понял преобразователь из 12 во сколько не знаю. Транзисторы выпаял, рядом с ними имеются резисторы (подсоединены к затвору), в двух обрыв, в одном пробой, третий по тестеру 7,8ком. Собственно глупый (но я хоть попытаюсь) вопрос - а какого номинала могут быть данные резисторы ? Они smd, соответственно маркировку на них прочесть не получится. Схемы усилителя нет, гуглеж схем на этих мосфетах ни к чему не привел.
    • Сдается мне, ты даже не знаешь кто такой Штирлиц.
    • Еще раз  - у автора ролика не ацетон, а смесь эфира фиг знает с чем. Да и тонер тоже фиг знает какой.  ЗЫ. Вест, попробуйте смывать не ацетоном, а его смесью с водой.