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)
Ответ на: комментарий от 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
() автор топика
Ответ на: комментарий от Assembler

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

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

anonymous
()
Ответ на: комментарий от 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
()
Ответ на: комментарий от anonymous

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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