LINUX.ORG.RU

Tim1

 ,


0

1

stm32f103c8 здрасьте здрасьте люди добрые) поправьте пожалуйста код, чтобы работало. Смысл такой, что надо сделать для понимание мигание светодиода с итревалом 3 сек с помощью таймера TIM1. пожалуйста обратите внимание на теги. в них нет СИ. не пишите пожалуйста примеры, которые не будут работать без библиотек, или которые вобще не будут работать.

.cpu cortex-m3
.thumb
.section .text
TIM1_PSC_zero_bit:  .word 0x42258500
TIM_CR1_CEN:        .word 0x42258000
TIM_CR1:            .word 0x40012c00
TIM_BDTR_MOE:       .word 0x422588BC
TIM1_PSC:           .word 0x40012c28

RCC_APB2ENR_TIM1EN: .word 0x4242032C//адрес рассчитан по формуле(смещение*32)+(4*Numbit)+0x42000000
//так как таймер будет работать у меня от частоты шины, то подключаю его.

.global _start
_start:
mov r5, #1
ldr r0, =RCC_APB2ENR_TIM1EN
str r5, [r0]

//TIM1_CNT оставлю по умолчанию.
mov r1, #1
ldr r0, =TIM_CR1_CEN
str r1, [x0]// разрешает счет.

//настраиваю счетчик на дикремент. 
ldr r0, =TIM_CR1_CEN
mov r1, #1
str r1, [r0, #16]// поместил единицу в бит DIR
mov r1, #0
str r1, [r0, #20]  поместил ноль в бит CMS
str r1, [r0, #24] поместил ноль в бит СМS
//помещаю 7999 в TIM_PSC
mov r1, #1
mov r2, #0
ldr r0, =TIM1_PSC_zero_bit
str r1, [r0]
str r1, [r0, #4]
str r1, [r0, #8]
str r1, [r0, #12]
str r1, [r0, #16]
str r1, [r0, #20]
str r2, [r0, #24]
str r2, [r0, #28]
str r1, [r0, #32]
str r1, [r0, #36]
str r1, [r0, #40]
str r1, [r0, #44]
str r1, [r0, #48]
// в TIM_PSC лежит #1111100111111
up:


bl up
чтобы светодиод мигал что нужно сделать? как связать ногу PC13 c TIM1?

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

дело не в ответах, а в вопросах и их авторе.

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

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

потом вы говорите, что умеете, но не хотите писать даже за деньги

Инсинуации. Предложения уже поступали. Свои 15к я так и не увидел.

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

Это ты так оправдываешь свое нежелание учиться и разбираться? Помогать тебе не будут не из-за того, что ты перечислил, а просто потому что ты унылый и бесполезный флудер. Вот скажи, кому тут на форуме от тебя польза и какая? И почему кто-то захочет тебе помочь?

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

Свои 15к я так и не увидел

о! я точно вас не обманывал. у меня даже таких денег нет. такое и я могу вам сказать, что где мои деньги? почему я не вижу свои 100к? ну или 1000к$ где они? вы думаете, что я вас тут бесплатно что ли веселю?

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

почему кто-то захочет тебе помочь?

вопрос наверное в том, почему кто-то должен мне помочь? да потому что только так растут сообщества. Оно или будет деградировать, или расти. вы не радуйтесь, что здесь будет лишь кучка умеющих, а остальные будут придурки. Да, выглядить на их фоне вы будете супер, но не забываейте, что среда влияет на нас. Рост возможен лишь среди тех ,кто растет сам. иногда ступени так высоки, что кто-то должен подставить свои плечи. и не спрашивать

почему кто-то должен хотеть тебе помочь?

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

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

Может быть, уже сходил или не годен к строевой.

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

если на это у тебя самого нет соображения, то процесс уже запущен.

Это Метапрог или его младший брат.

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

Это Метапрог или его младший брат.

У нас на работе два Метапрога есть.
Пытались им помогать, …, но Метапрогов

Не перешибешь

Жуть!

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

да потому что только так растут сообщества.

Сообщества растут, помогая тем, кто может развиваться в принципе. Ты не можешь. Ты только тратишь время и толку от тебя нет и не предвидится. На форуме есть сотни более талантливых новичков.

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

Сообщества растут, помогая тем, кто может развиваться в принципе.

Не хотелось бы обижать ТС, но это форум разработчиков, а не хоббистов.

ТС, понимаешь, не всем интересно обсуждать как вывести «Hello dog».

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

ТС, понимаешь, не всем интересно обсуждать как вывести «Hello dog».

если не всем интересно, то, следовательно, не всем и неинтересно. логично?

ТС, а нафига ты тему удалил ту? там же норм ответы были, не то что тут.

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

если не всем интересно, то, следовательно, не всем и неинтересно. логично?

Нет не логично.
Подумайте почему …

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

ТС, а нафига ты тему удалил ту? там же норм ответы были, не то что тут.

Там раскрыли, что он из-под анонима писал нехорошие вещи про форумчан.

anonymous
()

Короче, автор перепробовал все от лести и личных оскорблений до теорий заговора и апокалипсиса. Прямо как цыгане в электричке - помоги или прокляну. А потом снова плачут - ну сделай лабу, не хочу в армейку.

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

Короче, автор перепробовал все от лести и личных оскорблений до теорий заговора и апокалипсиса.

Надоело мне учиться!
Всё пиши, решай задачи.
То какой-то поезд мчится
От столицы и до дачи –

Сорок восемь километров,
А потом летит с обрыва.
«Рассчитайте скорость ветра»,
«Рассчитайте силу взрыва!»

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

Неконструктивно – удалять тему с полезной информацией.

Автор эгоцентричен. Ему все равно на окружающих. Принеси, подай, иди нахрен, не мешай.

anonymous
()

чтобы светодиод мигал что нужно сделать? как связать ногу PC13 c TIM1?

Программно. Переключить состояние PC13 в своём обработчике прерывания от таймера. Адрес этого обработчика положить в место, известное МК. Где это место, подсмотреть в документации к МК или в многочисленных примерах. Там же подсмотреть сопутствующую магию, нужную для корректной обработки прерывания.

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

Автор эгоцентричен. Ему все равно на окружающих. Принеси, подай, иди нахрен, не мешай.

Ну так брат Метапрога же …

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

норм ответы были, не то что тут

тут тоже есть

.syntax unified
.cpu cortex-m3
.thumb

RCC_APB2ENR = 0x40021018
RCC_APB2ENR_IOPCEN = (1 << 4)
RCC_APB2ENR_TIM1EN = (1 << 11)

GPIOC_CRH = 0x40011004

TIM1_CR1 = 0x40012c00
TIM_CR1_URS = (1 << 2)
TIM_CR1_CEN = (1 << 0)

TIM1_PSC = 0x40012c28
TIM1_ARR = 0x40012c2c

TIM1_DIER = 0x40012c0c
TIM_DIER_UIE = (1 << 0)

TIM1_EGR = 0x40012c14
TIM_EGR_UG = (1 << 0)

NVIC_ISER0 = 0xe000e100
TIM1_UP = (1 << 25)

TIM1_SR = 0x40012c10
TIM_SR_UIF = (1 << 0)

GPIOC_ODR = 0x4001100c

.text
	.word   0x20002000
	.word   _start + 1
	.space  0x9c
	.word   TIM1_UP_isr + 1

.global _start
_start:
	ldr    r0, =RCC_APB2ENR
	ldr    r1, [r0]
	orr    r1, #(RCC_APB2ENR_TIM1EN | RCC_APB2ENR_IOPCEN)
	str    r1, [r0]

	ldr    r0, =GPIOC_CRH
	ldr    r1, [r0]
	and    r1, #0xFF0FFFFF
	orr    r1, #0x00100000
	str    r1, [r0]

	ldr    r0, =TIM1_CR1
	ldr    r1, =TIM_CR1_URS
	str    r1, [r0]

	ldr    r0, =TIM1_PSC
	ldr    r1, =1000
	str    r1, [r0]

	ldr    r0, =TIM1_ARR
	ldr    r1, =2000
	str    r1, [r0]

	ldr    r0, =TIM1_DIER
	ldr    r1, =TIM_DIER_UIE 
	str    r1, [r0]

	ldr    r0, =TIM1_EGR
	ldr    r1, =TIM_EGR_UG
	str    r1, [r0]

	dsb

	ldr    r0, =TIM1_CR1
	ldr    r1, =TIM_CR1_CEN
	str    r1, [r0]

	ldr    r0, =NVIC_ISER0
	ldr    r1, =TIM1_UP
	str    r1, [r0]

loop:
	wfi
	b loop

.global TIM1_UP_isr
TIM1_UP_isr:
	ldr    r0, =TIM1_SR
	ldr    r1, [r0]
	bic    r1, #TIM_SR_UIF
	str    r1, [r0]

	ldr    r0, =GPIOC_ODR
	ldr    r1, [r0]
	eor    r1, #(1 << 13)
	str    r1, [r0]

	bx lr
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

качаешь proteus с торента - версия 8.10 sp3 точно симулирует stm32 (написан кстати на Qt но версии для Linux нет) и ставишь в виртуалке

Открываешь File-> Open Sample Project

В открывшемся окне Category -> VSM form Cortex M3, Results -> STM32F103 Blink LED (using STMCubeMX)

В окне Schematic Capture у диода удаляешь линию к PA5 и рисуешь мышкой новую на PC13

Щёлкаешь два раза на изображении STM32 и в открывшемся окне указываешь свою фирмварь в поле Program File -> blinky.elf

В нижнем левом углу есть кнопки управления как у плееров треугольник Play и квадрат Stop - на схеме будет периодически зажигаться желтый светодиод в режиме Play

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

я не удалял

Ну значит модераторам надоели десятки бесполезных тем. Мог бы свои лабы в рамках одной темы курочить.

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

можно номер колешька яндекс. это было бы лучше. давайте только пожалуйста быстрее. пока есть wi-fi

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

я надеюсь хоть тут уговаривать не надо? два дня просил написать пример, теперь два дня надо будет уговаривать написать свой номер яндексКошелька) смелее

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

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

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

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

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

прикольно, спасибо, что повторили камент с кодом.

я там спрашивал про инструкцию dsb. так ли она нужна? насколько я понял из прог.мана для периферии, как МК, так и ядра, гарантирован такой же порядок доступа к памяти, соответствующий порядку инструкций в программе. но там ест какая-то муть насчёт «shareable - non-shareable». вот это я не понял.

proteus

хорошая программа, я на ней авр симулировал давно. а стм у меня железные есть. светодиод с резистором тоже найдётся )

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

Иди с преподом уже целуйся, а то пересдачи закончатся.

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

пишите номер карты пожалуйста

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

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

я там спрашивал про инструкцию dsb. так ли она нужна?

я не уверен, не занимаюсь микроконтроллерами и у меня нет на чём проверить кроме програмной симуляции а она не эталон достоверности

хорошая программа, я на ней авр симулировал давно

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

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

отравлю собачкам. людей я как-то не очень. сюда скину скрин.

То ли ты собак травишь, то ли мизантроп. В любом случае, ты какой-то нездоровый.

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

То ли ты собак травишь

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

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

все, больше говорить об этом не надо.

Во-первых, прочти свое сообщение про собачек. Во-вторых, прекрати на общем форуме командовать и затыкать всем рот.

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

отравлю собачкам

любая жизнь бесценна, но собачкам на еду собирают а детям на лекарства и операции от смертельно опасных заболеваний, это их последний шанс

людей я как-то не очень

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

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

Короче, автор перепробовал все от лести и личных оскорблений до теорий заговора и апокалипсиса. Прямо как цыгане в электричке - помоги или прокляну. А потом снова плачут - ну сделай лабу, не хочу в армейку.

Потом окажется что он инвалид. Потом инвалид афганец. Потом уже просто будет стрелять мелочь на пиво.

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

Потом окажется что он инвалид. Потом инвалид афганец.

Да нет.
Он не раз говорил, что учится, а вопросы на форуме это хобби.

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

Он не раз говорил, что учится, а вопросы на форуме это хобби.

Он небось боялся, что если скажет, что лабы делает, то его пошлют в job.

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

Он небось боялся, что если скажет, что лабы делает, то его пошлют в job.

По стилю постов очень схож с Метапрог.

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

По стилю постов очень схож с Метапрог.

Ну метапрог хоть какой-то результат родил. Тут вообще нулевый товарищ. Чем он там баловался - c, ооп в c++, haskell, загрузчик свой писал, теперь stm32. Везде пустота.

Пусть теперь шейдеры попишет, или fpga купит, или свою ось замутит, или криптовалюту, или игру.

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

Ну метапрог хоть какой-то результат родил.

Когда сравниваю с Метапрог, то не в контексте того, что Метапрог глуп …

anonymous
()

А не боишься, что тебя забанят раньше, чем ты успеешь закончить надпись в профиле?

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

метапрог хоть какой-то результат родил. Тут вообще нулевый товарищ. Чем он там баловался - c, ооп в c++, haskell, загрузчик свой писал, теперь stm32. Везде пустота.

ТС ни как не поймет, что задаваемые им вопросы - нежелание читать мануалы.
Как у Метапрог - один в один.

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

Его в бункере держат. На телефоне нет связи, кроме wifi.

anonymous
()

stm32f103c8 здрасьте здрасьте люди добрые)

В нашей деревне за такие слова …

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