поправил, расположил тут: viewtopic.php?p=3352979#p3352979 в протеусе мигает з.ы. у этих пиков, насколько помню, в начале программы должна быть команда загрузки константы для внутреннего RC генератора или переход в конец. А компилятор вроде с давних времен код с конца размещал.
Урааа!!! Работает!! Только надо было поправить GPIO4 на GPIO2. Я рад как ребёнок!!!!11
Код: Спойлер
Код:
#pragma config FOSC = INTRCIO // #pragma config WDTE = OFF // Watchdog Timer Enable bit (WDT disabled) #pragma config PWRTE = ON // Power-Up Timer Enable bit (PWRT enabled) #pragma config MCLRE = OFF // #pragma config BOREN = ON // Brown-out Detect Enable bit (BOD enabled) #pragma config CP = OFF // Code Protection bit (Program Memory code protection is disabled) #pragma config CPD = OFF // Data Code Protection bit (Data memory code protection is disabled)
// #pragma config statements should precede project file includes. // Use project enums instead of #define for ON and OFF.
#include <xc.h>
#define _XTAL_FREQ 4000000
void main(void){ //Вспомогательная переменная //для организации временной задержки unsigned long counter;
Комментарий к файлу: pic12f629 blink C MAIN.c [1.42 KiB]
Скачиваний: 515
_________________
ааааааааааааааааааааааааа็аааааааааааааааааааааааа็аааааааааааааааааааааааа, I love this.ааааааааааааааааааааааааа็аааааааааааааааааааааааа็аааааааааааааааааааааааа
Сообразительный FastAVR - если прерываний нет, то и таблицу прерываний и не надо. На ассемблере AVR: Спойлер
Код:
.include <tn13def.inc> .cseg .org $000
ldi R16, 0x9F out SPL, R16 sbi DDRB, 0 loop: in R16, PORTB ldi R17, 0x01 eor R16, R17 out PORTB, R16 ; Generated by delay loop calculator ; at http://www.bretmulvey.com/avrdelay.html ; ; Delay 9 600 000 cycles ; 1s at 9.6 MHz ldi r18, 49 ldi r19, 180 ldi r20, 102 L1: dec r20 brne L1 dec r19 brne L1 dec r18 brne L1 rjmp loop
34 байта
Если сделать delay подпрограммой - будет практически то же, что и FastAVR. Можно и подсократить, как выше предлагалось аппаратной фичей AVR, но не спортивно - у других микроконтроллеров такого нет, да и не у всех AVR тоже присутствует.
подсократить, как выше предлагалось аппаратной фичей AVR, но не спортивно - у других микроконтроллеров такого нет, да и не у всех AVR тоже присутствует
то есть рассказывать про DMA у ARM это спортивно, а применение других аппаратных особенностей контроллеров - не спортивно?
_________________ если рассматривать человека снизу, покажется, что мозг у него глубоко в жопе при взгляде на многих сверху ничего не меняется...
Качественное и безопасное устройство, работающее от аккумулятора, должно учитывать его физические и химические свойства, профили заряда и разряда, их изменение во времени и под влиянием различных условий, таких как температура и ток нагрузки. Мы расскажем о литий-ионных аккумуляторных батареях EVE и нескольких решениях от различных китайских компаний, рекомендуемых для разработок приложений с использованием этих АКБ. Представленные в статье китайские аналоги помогут заменить продукцию западных брендов с оптимизацией цены без потери качества.
ну конечно же, ведь у AVR теперь есть шанс обзавестись DMA - Микрочип то древние 8-ми битные PIC18 оснастил DMA: http://www.microchip.com/promo/pic18f-k42 В новых мегах уже заявлено Event System, не разбирался можно ли мигать с помощью:
Цитата:
The Event System can directly connect peripherals such as ADCs, analog comparators, I/O port pins, the real-time counter, timer/counters, and the configurable custom logic peripheral. Events can also be generated from software.
Event — это событие (аппаратное или программное), на которое могут реагировать ядро или периферийные блоки. Одним из вариантов реакции может быть — прерывание.
Компания EVE выпустила новый аккумулятор серии PLM, сочетающий в себе высокую безопасность, длительный срок службы, широкий температурный диапазон и высокую токоотдачу даже при отрицательной температуре.
Эти аккумуляторы поддерживают заряд при температуре от -40/-20°С (сниженным значением тока), безопасны (не воспламеняются и не взрываются) при механическом повреждении (протыкание и сдавливание), устойчивы к вибрации. Они могут применяться как для автотранспорта (трекеры, маячки, сигнализация), так и для промышленных устройств мониторинга, IoT-устройств.
С помощью DMA и RGB светодиодами WS2112B легче управлять, dosikus в теме все раскладки в картинках ранее давал. Вот например без SPI и жестких таймингов: https://geektimes.ru/post/255548/
Цитата:
После этой инициализации начинается автоматическая пересылка битового потока из массива DMA_buf расположенного в ОЗУ на внешний вывод 8 GPIOB. Автоматически генерируется и 50-и микросекундная пауза сброса. Процессор в пересылке никак не участвует, не используются даже прерывания. Нельзя сказать, что данный механизм вообще не влияет на процессор. Его работа несколько замедляется. Поскольку он разделяет вместе с DMA общий доступ к ОЗУ и системной шине. Но измерения показали, что это замедление в данном случае не превышает 0.2%
Тот код что на казусе полностью использует порт (т. к. запись в ODR) в отличие от cyberforum где запись в BSRR и возможно свободные выводы использовать для других целей. Так что вы не правы (наверное даже код не смотрели).
Тот код что на казусе полностью использует порт (т. к. запись в ODR) в отличие от cyberforum где запись в BSRR и возможно свободные выводы использовать для других целей. .
А кто тебе сказал, что при использовании ODR нельзя юзать незадействованные в LED индикации пины ?
Массив записывается через DMA в ODR и можно использовать выводы разве что изменяя биты в массиве. Если программно записывать что-то в ODR или BSRR, при следующей DMA транзакции данные будут потерты содержимым массива. Если DMA пишет в BSRR этой проблемы нет.
Автор темы прав в том, что за один день не изучить STM32.
Автор темы прав в том, что не имеет совершенно никакого смысла STM32 изучать. Ибо прошло больше года, и хотя за это время отнюдь не однажды возникала потребность в использовании STM32, всякий раз находилось более простое, надежное и дешевое техническое решение.
int main(void) { SysTick_Config(48000000U / 1000); // SysTick 1 msec interrupts RCC->AHBENR |= RCC_AHBENR_GPIOAEN; // Power up PORTA GPIOA->MODER |= (GPIO_MODER_MODER4_0); // make bits PA4 PA0 an output
for (;;) { GPIOA->ODR ^= GPIO_ODR_4; // Turn specified LED on Delay(1000); // Wait 1000ms } }
интересный проектик на не-ARM: Компьютер Радио-86РК за $3? Реально! Алексей Пресняков (heavy) из г. Орёл разработал очень любопытный проект – программно-аппаратный эмулятор легендарного компьютера Радио-86РК. Свой проект Алексей посвятил отцу, который привил ему любовь к компьютерной технике, собственноручно собрав в своё время Радио-86РК. Уникальность данного проекта заключается в том, что в основе аппаратного обеспечения лежит дешёвый чип ESP8266, основное предназначение которого – обеспечение беспроводной связи. Однако автору проекта удалось задействовать ресурсы этого электронного компонента для эмуляции ретро-компьютера. Помимо собственно ESP8266 в компьютере используется только ещё одна совсем недорогая микросхема, мелочёвка в виде резисторов и регулятора напряжения, а также разъёмы. Таким образом себестоимость готового устройства находится в районе $3-$5. http://zx-pk.ru/content/365-Kompiuter-R ... a-3-Realno! (ностальгическая слеза)
Ибо прошло больше года, и хотя за это время отнюдь не однажды возникала потребность в использовании STM32, всякий раз находилось более простое, надежное и дешевое техническое решение.
Хорошо если так, но если процессор какой то все равно нужен - почему бы и не этот, чисто на всякий случай - вдруг надо будет расширить, углубить, ускорить...
_________________ "Вся военная пропаганда, все крики, ложь и ненависть исходят от людей, которые на эту войну не пойдут !" / Джордж Оруэлл / "Война - это,когда за интересы других,гибнут совершенно безвинные люди." / Уинстон Черчилль /
Компьютер Радио-86РК за $3? Реально!Уникальность данного проекта заключается в том, что в основе аппаратного обеспечения лежит дешёвый чип ESP8266, основное предназначение которого – обеспечение беспроводной связи.
У меня как раз ESP8266 лежит... Но мне леееень повторять такое
Добавлено after 36 minutes 41 second: Всем привет! Уже давно прикупил STM32F103C8T6. Скачал Keil (ломанул), с мучениями поставил CMSIS, а как блинкать светодиодом на PC13 так и неразобрался (наверное из-за своей лени). Надыбал код, который моргает светодиодом, но так и не понял, как оно всё работает. Может у кого есть для меня очень понятное объяснение или блинк на CMSIS у которого Program Size примерно такой: Code=708 RO-data=252 RW-data=0 ZI-data=1632.
/* simple Multitool lib for stm32/arduno. (c) Lublu_megy */
#define __multitool_h_H
void multi_delay(int milliseconds) // Delay Function (milliseconds) { int milliseconds_imported = milliseconds * 10000; //Convent NanoSeconds in Milliseconds
for (milliseconds=milliseconds_imported; milliseconds>0; milliseconds--); //Delay
}
P.S.: Keil ничего не знает про RCC_APB2ENR и RCC_APB2ENR_IOPCEN.
_________________
ааааааааааааааааааааааааа็аааааааааааааааааааааааа็аааааааааааааааааааааааа, I love this.ааааааааааааааааааааааааа็аааааааааааааааааааааааа็аааааааааааааааааааааааа
Вы не можете начинать темы Вы не можете отвечать на сообщения Вы не можете редактировать свои сообщения Вы не можете удалять свои сообщения Вы не можете добавлять вложения