LINUX.ORG.RU

включить тактирование

 


0

1

здрасьте здрасьте люди добрые. скажите пожалуйста как правильно включить тактирование? МК stm32f103c8. нарыл что порты ввода|вывода расположены на шине APB2. причем все порты. нельзя включить отдельно порт допустим

GPIO A
GPIO B
можно только подать тактирование на шину
APB2
нахожу
RCC_APB2ENR
в этом регистре нахожу бит
IOPC// так как светодиод висит у меня  на PC13
и теперь видимо мне нужно его выставить в едниницу. нахожу в memory map вижу адрес не APB2 а RCC
RCC 0x40021000
и правильно ли я понимаю что теперь чтобы мне включить бит нужно вычислить адрес по формуле
40021000-40000000=offset
(offset*32)+(4*4)
потому что (4*4) IOPC=4 битом
поправте пожалуйста уважаемые форумчане меня. я не совесем понимаю как правильно считать



Последнее исправление: Assembler (всего исправлений: 1)
Ответ на: комментарий от COKPOWEHEU

Если бы ты хотел им воспользоваться, ты бы его прочитал, а не искал за что зацепиться.

Так я хочу. Что мне надо сделать, чтобы его скомпилировать-то, скажи?

Какое это имеет отношение к моему примеру? В моих проектах и сон, и прерывания, и все остальное работает.

А такое, что ты сам предлагал начать с простого и потом пробовать что-то дописывать. А как я буду дописывать без документации? Я даже не знаю с какой буквы начать что-то писать.

В моих проектах и сон, и прерывания, и все остальное работает.

Опять послал нахер новичка, получается.

Разумеется, нет. Именно поэтому надо не попрошайничать на форумах, а учиться искать ответы самостоятельно.

Так…

Вы собрали минимальный работоспособный код, на котором можно экспериментировать? А то берете адреса фиг знает откуда и фиг знает зачем, а потом крики «что я делаю не так». Вот именно это - попытка угадать ответ вместо последовательного изучения и понимания что и зачем делается. Алгоритм отладки я вам тоже уже расписал - строим минимально рабочий код и тестируем новые фичи по одной, чтобы сразу видеть какую именно не понимаем. Если не лень будет вечером откопаю платку с f103 и по шагам покажу как это делается. Не на асме, а на Си, разумеется.

Это не твои слова что ли? Это называется ты показал как по шагам собрать минимальный работоспособный код? Да иди ты сам туда, понял.

anonymous
()
Ответ на: комментарий от anonymous

Опять послал нахер новичка, получается.

Не новичка, а тролля, не путай. Ты тут ко мне чуть ли не с начала темы цеплялся.

Это не твои слова что ли? Это называется ты показал как по шагам собрать минимальный работоспособный код?

Еще раз: это не готовый код, это алгоритм решения простой задачи на примере задачи Ассемблера. У него ведь проблема не с кодом была, а с непониманием что с кодом делать дальше.

COKPOWEHEU
()
Ответ на: комментарий от anonymous

Что мне надо сделать, чтобы его скомпилировать-то, скажи?

tm32f1xx.h: No such file or directory
1 | #include <stm32f1xx.h>

Если не тролишь то рекомендую отлижить мк и прочитать книжку по сям.

ya-betmen ★★★★★
()
Ответ на: комментарий от anonymous

Что мне надо сделать, чтобы его скомпилировать-то, скажи?


arm-none-eabi-as blinky.S -o blinky.o
$ arm-none-eabi-ld blinky.o -Ttext=0x08000000 -o blinky.elf
$ arm-none-eabi-objcopy -O binary blinky.elf blinky.bin
$ stat -c %s blinky.bin 

если ты пишешь на CИ сначала

 arm-none-eabi-gcc blinky.c -c -o blinky.o 
ну я не видел сам код. да и ниселен чтобы давать советы. это фрагмент кода из темы, который написал Anonymous

Assembler
() автор топика
Ответ на: комментарий от COKPOWEHEU

Ты дал код. Неполный. Нерасширяемый. Без документации. Без инструкции сборки и настройки окружения. Он не компилируется. Ну и кто после этого тролль?

Всё, что ты показал — это только твой пустой гонор и твоё отношение к аудитории и больше ничего. С тем же успехом мог просто, под честное слово сказать, что у тебя всё работает. Научил, ага.

Твои советы бесполезные.

anonymous
()
Ответ на: комментарий от anonymous

попробуй на assembler.

.cpu cortex-m3
.thumb
.global _start

    PORT_C_ENABLE_BIT           = 0x42420310
    PORT_C_PIN13_MODE0_BIT      = 0x422200d0
    PORT_C_PIN13_OUTPUT_BIT     = 0x422201b4

.text
      .word   0x20005000
      .word   _start + 1
    
    _start:
        movs    r1, #1

        ldr     r0, =PORT_C_ENABLE_BIT
        str     r1, [r0]
        ldr     r0, =PORT_C_PIN13_MODE0_BIT
        str     r1, [r0]

        
        loop:



        bl loop

немного для тебя изменил код написаный Anonymous. так ты зажгешь светодиод.

Assembler
() автор топика
Ответ на: комментарий от ya-betmen

Если не тролишь то рекомендую отлижить мк и прочитать книжку по сям.

У нас тут ролевые игры. Не мешайте, проходите :)

anonymous
()
Ответ на: комментарий от Assembler

так ты зажгешь светодиод

А теперь усложни задачу и поменяй программно яркость. Или навесь кнопку, которая на каждое нажатие будет включать или выключать светодиод. Или навесь дисплей. Или датчик какой. Быстро поймешь, что твой код это одноразовое днище, которое ничему не учит. Ведь без помощи анонима ты ничего не сделаешь.

anonymous
()
Ответ на: комментарий от Assembler

если ты пишешь на CИ сначала

arm-none-eabi-gcc blinky.c -c -o blinky.o

ну я не видел сам код. да и ниселен чтобы давать советы. это фрагмент кода из темы, который написал Anonymous

Это точно. Потому что для Си-шного кода надо еще указать флаги компилятора, указать пути к заголовочным файлам, отключить стандартные библиотеки, а потом линковщику указить файл сборочного скрипта. В общем, немножко больше действий. И все они специфичны для окружения - где хранятся библиотеки, какой используется компилятор. Короче, от вашей «подсказки» толку не больше, чем от кода того Анонимуса.

Последовательность вызовов будет скорее такой (вырвано на глазок из makefile’а):

arm-none-eabi-gcc -fno-builtin -Wall -MD -MP -MT build/main.o -MF build/dep/main.o.mk -mthumb -mcpu=cortex-m3 -gdwarf-2 -Os -DSTM32F103xB $(incdir) -c src/main.c -o build/main.o

arm-none-eabi-gcc -Tstm32f10xC8.ld -nostartfiles -Wl,-Map -Wl,build/firmware.map -mthumb -mcpu=cortex-m3 -o res/firmware.elf build/crt.o $(libdir) build/main.o

В общем, в отличие от компьютерного программирования, здесь начать проще с чужого шаблона, и только потом разбираться в его магии

COKPOWEHEU
()
Ответ на: комментарий от Assembler

так будет проще

.cpu cortex-m3
.thumb
.global _start

  

.text
      .word   0x20005000
      .word   _start + 1
    
    _start:
        movs    r1, #1

        ldr     r0, = 0x42420310
        str     r1, [r0]
        ldr     r0, =0x422200d0
        str     r1, [r0]
        ldr     r0, =0x422201b4
        
        loop:



        bl loop
Assembler
() автор топика
Ответ на: комментарий от anonymous

А теперь усложни задачу и поменяй программно яркость

А не слишком резкий скачок? Это ведь надо либо программный, либо аппаратный ШИМ городить. Ассемблер небось и слов-то таких не знает.

Вот кнопка - хорошо. Два светодиода с разной частотой тоже. Семисегментник совсем наглядно продемонстрирует убожество bitband подхода. А вот BSRR с ним справляется неплохо.

COKPOWEHEU
()
Ответ на: комментарий от COKPOWEHEU

вот он ты голубчик! о том то и речь!

Потому что для Си-шного кода надо еще указать флаги компилятора, указать пути к заголовочным файлам, отключить стандартные библиотеки, а потом линковщику указить файл сборочного скрипта.

какие же вы есть! намного проще написать код и скомпилировать на Assembler, но вы меня одговоривали и убеждали что надо делать на CИ. короче вопрос исчерпан.

Assembler
() автор топика
Ответ на: комментарий от ya-betmen

Если не тролишь то рекомендую отлижить мк и прочитать книжку по сям.

Да видно же что тролль. Я на его выкрики стараюсь отвечать только когда ответ может пригодиться случайным прохожим.

COKPOWEHEU
()
Ответ на: комментарий от COKPOWEHEU

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

То есть ты предлагаешь начать с рабочего шаблона доброго дяди, а сам при этом огрызаешься и шлёшь новичков нахер? Так тебе повезло просто, что дядя добрый был. И теперь ты на этой счастливой случайности, получается, пытаешься выехать.

Ну и наконец-то разобрались, кто тут на самом деле ардуинщик-говнокодер.

anonymous
()
Ответ на: комментарий от Assembler

намного проще написать код и скомпилировать на Assembler, но вы меня одговоривали и убеждали что надо делать на CИ

Да, так и есть. Пока что никаких противоречий не видно.

Вон вы в ассемблере как запутались. На Си было бы гораздо проще. Хотя шаблон с «магией» поискать бы пришлось, это да.

COKPOWEHEU
()
Ответ на: комментарий от anonymous

Ведь без помощи анонима ты ничего не сделаешь

ты почитай мои комменты. я точно самое и говорю. где я сказал что это мое и что я сам написал. я сказал, что все ваши советы кроме этого кода что написал Anonymous -дерьмо. и что я только начинаю. это третий день моего знакомства с МК. так о чем ты говоришь? или вы просто хотите посмотреть что я могу? ну так я тут перед вами не стану хвост пушить. я не кого не учу, псевдоновичок что выше хотел посмотерть код как пример. я ему дал пример от Anonymous.

Assembler
() автор топика
Ответ на: комментарий от anonymous

Ладно, бывайте, мне пора. Завтра ещё загляну на огонёк :)

нафиг ты тут нужен! своих дебилов хватает.

Assembler
() автор топика
Ответ на: комментарий от Assembler

нафиг ты тут нужен! своих дебилов хватает.

Самокритично. Возможно ты не безнадежен.

anonymous
()
Ответ на: комментарий от COKPOWEHEU

А не слишком резкий скачок? Это ведь надо либо программный, либо аппаратный ШИМ городить. Ассемблер небось и слов-то таких не знает.

Ну можно взять пример с ШИМ для куба или hal’а из chibios и поразбираться, какие параметры на что влияют. Вполне доступно для новичка. ТС уже микроменеджментом пытается заниматься, хотя даже общую картинку не представляет.

anonymous
()
Ответ на: комментарий от anonymous

Ну можно взять пример с ШИМ для куба или hal’а

Да в этом даже я не разберусь! При том, что человеческими способами ШИМ делается просто. А параметры - да какие у ШИМ параметры. Скважность да частота.

Хотя если удастся ТСу объяснить что такое ШИМ, может программную реализацию и осилит. Правда, ограничений битбанда на ней видно не будет - единственный диод же. На таймерах с текущими знаниями не осилит.

COKPOWEHEU
()
Ответ на: комментарий от COKPOWEHEU

А параметры - да какие у ШИМ параметры. Скважность да частота.

Для столь однобитного ТСа это может быть даже за гранью возможностей.

anonymous
()
Ответ на: комментарий от anonymous

однобитного ТСа

он типичный SJW, рак для опенсорса

anonymous
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.