Чт ноя 15, 2018 15:37:36
Вот "китайский за 4$" который вы предлагаете. https://ru.aliexpress.com/item/Atmel-AV ... 95257.htmlAAX писал(а):Atmel Ice позволяет прекрасно отлаживать код на tiny24. DebugWire прекрасно позволил мне разобраться с работой МК AVR
Чем знание процессора и асма поможет .NET или Java программистам? То что они пишут, компилируется в управляемый байт-код выполняемый на виртуальной машине. Асм вставки и низкоуровневая работа не поддерживается.AAX писал(а):Конечно! Иначе это не программист, а хрен пойми, что
Ну да. Можно написать без нее на регистрах. Просто с SPL код более читаемый.AAX писал(а):но с SPL?
Видимо я был прав. Вы просто посмотрели на STM32 и решили что вам это не надо поскольку показались слишком сложными (а на самом деле, они не сложные, а просто немного отличаются от AVR) и стали дальше юзать 8-ми битники. Вот поэтому я не рекомендую с них начинать, потом что потом не сможете перейти на современные 32-ух битные МК.AAX писал(а):смысл этого потока сознания я не понял.
Почему вы решили что я нет базовых знаний? Приведенный выше код не работает или написан неправильно?AAX писал(а):так же, как и Вы, не считают необходимым осваивать базовые знания по своему предмету. Со всеми вытекающими
Чт ноя 15, 2018 15:56:59
Чт ноя 15, 2018 16:41:18
Чт ноя 15, 2018 16:50:57
Аналогичный код без SPL. Сильно сложнее чем такой же код для PIC или AVR?AAX писал(а):но с SPL?
#include "stm32f10x.h"
extern uint32_t SystemCoreClock; // В переменной хранится текущая частота ядра МК.
void TIM2_IRQHandler(void) // Функция обработки прерывания от TIM2.
{
// Прерывание при переполнении таймера.
if (TIM2->SR & TIM_SR_UIF)
{
TIM2->SR &= ~TIM_SR_UIF; // Сброс флага прерывания.
GPIOC->ODR ^= GPIO_ODR_ODR13; // Инвертирование вывода PC13.
}
}
void Init(void) // Инициализация периферии.
{
RCC->APB1ENR |= RCC_APB1ENR_TIM2EN; // Включение тактирования таймера
RCC->APB2ENR |= RCC_APB2ENR_IOPCEN; // и порта GPIOC.
// Настройка порта в/в PC13.
GPIOC->CRH &= ~GPIO_CRH_CNF13;
GPIOC->CRH |= GPIO_CRH_MODE13;
// Настройка таймера.
TIM2->PSC = SystemCoreClock / 10000 - 1; // Настройка предделителся чтобы получить частоту 10 КГц.
TIM2->ARR = 5000 - 1; // Таймер будет переполняться 10000 / 5000 = 2 раза в секунду.
TIM2->DIER = TIM_DIER_UIE; // Разрешение прерываний по переполнению.
NVIC_EnableIRQ(TIM2_IRQn); // Разрешение прерываний от таймера.
TIM2->CR1 = TIM_CR1_CEN; // Запуск таймера.
}
int main(void)
{
SystemCoreClockUpdate(); // Вычисление текущей частоты ядра.
Init(); // Инициализация периферии.
while(1)
{
}
}
В Китае за 4$ и он поддерживает debugWIRE? Если нет, не нужно вводить других в заблуждение.AAX писал(а):Я лично, когда хотел разобраться с мк, купил Atmel Ice.
Чт ноя 15, 2018 17:06:52
Чт ноя 15, 2018 17:45:18
Если периферии и ее функций больше, то нужно больше времени. А так конечно в какой-то тинькие из периферии только один таймер и все, учить нечего, но и на практике сложно применять.AAX писал(а):Вы серьёзно считаете, что время на изучение 8-битного AVR сопоставимо с временем изучения ARM?
Выше привел пример без HAL. Что не так? Чем опять недовольны?AAX писал(а):Чтобы без HAL и прочей чепухи.
Зачем нужен отладчик, который для большинства AVRов может быть только программатором?AAX писал(а):Да в чём заблуждение-то? Отладчик хуже программатора?
Чт ноя 15, 2018 18:54:29
чтобы нормально работать с остальными AVRами? Ну, и про "большинство" - это Вы загнули, конечно. Большинство 8-ми битных, наверное.Мурик писал(а):Зачем нужен отладчик, который для большинства AVRов может быть только программатором?
Чт ноя 15, 2018 19:02:34
Чт ноя 15, 2018 19:27:39
У таймеров МК STM32 возможностей намного больше чем у AVR. Просто посмотрите. http://robocraft.ru/blog/ARM/722.htmlAAX писал(а):я говорю о том, что размер мануала по программированию таймеров для stm32 раз в 5 объёмнее, чем для AVR (даже для AVR с аппаратным шим-ом).
Опять же ничего сложного нет.AAX писал(а):Ещё можете поискать примеров инициализации какого-нибудь spi, i2c или uart на stm32.
USART_InitTypeDef Usart;
Usart.USART_BaudRate = 9600;
Usart.USART_WordLength = USART_WordLength_8b;
Usart.USART_StopBits = USART_StopBits_1;
Usart.USART_Parity = USART_Parity_No;
Usart.USART_HardwareFlowControl = USART_HardwareFlowControl_None;
Usart.USART_Mode = USART_Mode_Tx | USART_Mode_Rx;
USART_Init(USART2, &Usart);
Зачем нужен отладчик если им пользоваться только как программатором? Дешевле и логичнее купить программатор.AAX писал(а):чтобы нормально работать с остальными AVRами?
Чт ноя 15, 2018 19:41:11
#include <MK64F12.h> // load system regs definitions
int main(void)
{
SIM->SCGC5 |= SIM_SCGC5_PORTB_MASK; // enable clock for I/O ports
PORTB->PCR[22] = PORT_PCR_MUX(1); // configure PB.22 for GPIO
PTB->PDDR = (1<<22); // configure PB.22 for output (red LED)
SIM->SCGC5 |= SIM_SCGC5_LPTMR_MASK; // enable clock for LPTMR
LPTMR0->PSR = LPTMR_PSR_PBYP_MASK | LPTMR_PSR_PCS(1); // set LPO as LPTMR clock source
LPTMR0->CSR = 0; // make sure that LPTMR0 is disabled
LPTMR0->CMR = 1000; // 1000 msec delay
NVIC_EnableIRQ(LPTimer_IRQn); // enable LPTMR0 interrupt in NVIC
LPTMR0->CSR = LPTMR_CSR_TEN_MASK | LPTMR_CSR_TCF_MASK | LPTMR_CSR_TIE_MASK; // start timer
while(1) // main loop
{
__WFI(); // wait for LPTMR wake-up event
PTB->PTOR = GPIO_PTOR_PTTO(1<<22); // toggle the port pin to blink red LED
}
}
void LPTimer_IRQHandler(void)
{
LPTMR0->CSR |= LPTMR_CSR_TCF_MASK; // clear interrupt flag
}
#include <em_device.h>
int main()
{
CMU->OSCENCMD = CMU_OSCENCMD_LFRCOEN; // enable LFRCO oscillator
CMU->LFCLKSEL = CMU_LFCLKSEL_LFA_LFRCO; // set LRCO as LFA
CMU->LFACLKEN0 = CMU_LFACLKEN0_LETIMER0; // enable LFA to LETIMER
CMU->HFPERCLKEN0 = CMU_HFPERCLKEN0_GPIO; // enable clock to GPIO
CMU->HFCORECLKEN0 = CMU_HFCORECLKEN0_LE; // enable clock to LE peripherals
(GPIO->P[3]).MODEL = GPIO_P_MODEL_MODE7_PUSHPULL; // set output mode on PD.7
LETIMER0->IEN = LETIMER_IEN_UF; // enable underflow interrupt
LETIMER0->CMD = LETIMER_CMD_START; // start LETIMER0
NVIC_EnableIRQ(LETIMER0_IRQn); // enable LPTMR0 interrupt in NVIC
while(1) // main application loop
{
__WFI(); // wake-up by LETIMER
(GPIO->P[3]).DOUTTGL = 1<<7; // toggle PD.7
}
}
void LETIMER0_IRQHandler(void)
{
LETIMER0->IFC = LETIMER_IFC_UF; // clear timer IF
}
Чт ноя 15, 2018 20:50:05
Ну да, это тот случай когда недостаток выдают за достоинство, а то что за туже цену можно купить гораздо более лучший МК, это ничего не значит? Зачем тратить много и получать мало?Ivanoff-iv писал(а):а относительно неболшое количество периферии позволит не запутаться в ней
Зачем это было писать на асме? Разве бейсик не позволял это делать? Скажу по секрету, на бейсике можно написать драйвер для LPT порта под Windows. Где-то даже был пример обработки прерывания от LPT порта, естественно в драйвере и работало на Windows XP, 7 и др. системах._deep_ писал(а):В ассемблере самое сложное писал модуль - обработчик событий от LPT порта для подключения кнопок.
Чт ноя 15, 2018 20:50:29
значит. Объёмнее и значительно менее понятно.Мурик писал(а):Соответственно больше режимов работы и объемнее описание, но это не значит что сложнее изучение
опять же, это HAL. Вы не читаете того, что я пишу. Этот спор утомил меня, т.к. с моей точки зрения, Вы пытаетесь отрицать очевидное. Видимо, думая, что я не понимаю, какие клёвые микроконтроллеры на базе ARM. И как упрощает жизнь программисту HAL или SPL. Я понимаю. И абсолютно согласен с тем, что ARM за ту же цену будет значительно лучше AVR. И писать с использованием "кубиков" - быстрее. Тема не об этом.Мурик писал(а):Опять же ничего сложного нет.
И "разложить по полочкам" ARM проще, чем 8-ми битный AVR?Ser60 писал(а):Проблем у студентов с освоением этой архитектуры нет, если им всё разложить по полочкам
Чт ноя 15, 2018 21:12:07
За 60 рублей можете купить ATtiny2313 и получить МК с 8-ми битным ядром с тактовой частотой 20 МГц, 2 КБ флеша, 128 байт ОЗУ, два таймера (8-ми и 16-ти биный), 1 компаратор, 1 USI и 1 USART._deep_ писал(а):Я может чего-то недопонял, но Attiny2313 на Али 60 руб. Думаю это не те суммы чтобы выбирать МК из соображений экономии.
Если вам по одной цене предолжен простой кнопочный телефон 20-ти летней давности и современный топовый смартфон, вы возьмете телефон потому что он проще?AAX писал(а):значит. Объёмнее и значительно менее понятно.
Это SPL. Еще раз доказывает что вы пишите неправду утверждая что имеете опыт работы с STM32, иначе SPL с HAL не перепутали бы.AAX писал(а):опять же, это HAL.
Тогда начинайте с транзисторов или ламп чтобы изучить основы электроники._deep_ писал(а):А насчет устарело/неустарело, так ведь любой учебник из серии "Юный радиолюбитель" начинается с фразы: "Строим детекторный приёмник".
Прежде чем прошивать AVR хорошо изучите тему фьюзов (которых кстати нет в ARM, потому что не нужны) иначе при неправильной их установке, залочите МК._deep_ писал(а):Вопрос был был именно в совместимости указанного программатора чтобы максимально снизить порог входа в тему
Чт ноя 15, 2018 21:21:08
Чт ноя 15, 2018 21:29:15
Скажите честно, вы пробовали изучать STM32, или просто написали потому что так думаете?Novice user писал(а):Не связывайтесь вы с этим STM32,там надо иметь инженерное или хотя бы высшее образование
Для AVR знать не нужно? Если английский плохо знаете, есть онлайн переводчики.Novice user писал(а):и как миниумум знать разговорный английский для изучения даташитов
Шутите? Только в этой теме есть как минимум три сообщения с кодом настройки таймеров. viewtopic.php?p=3505152#p3505152Novice user писал(а):нигде в инете нет как настроить таймера
Чт ноя 15, 2018 21:58:42
Чт ноя 15, 2018 22:06:27
Мурик, вот зачем так нагло врать ?Мурик писал(а):потом не сможете перейти на современные 32-ух битные МК
Чт ноя 15, 2018 22:25:50
Это SPL. Еще раз доказывает что вы пишите неправду утверждая что имеете опыт работы с STM32, иначе SPL с HAL не перепутали бы.AAX писал(а):опять же, это HAL.
Чт ноя 15, 2018 22:43:25
Судя по форуму, у некоторых с переходом возникают сложности.Аlex писал(а):По-Вашему, все, кто начинал со старых 8-ми биток, не может сейчас перейти на современные 32-ух битные МК?
Это не пиар. Потому что выгоды с этого ноль.Аlex писал(а):и пиар ARM'ов
Похоже на то. Не обошлось без ярых сторонников 8-ми битников.Аlex писал(а):Господа, вам не кажется, что тема перешла в очередной религиозный спор "что лучше ?"
USART_Init тоже в HAL есть?AAX писал(а):да, перепутал, извините. UART_HandleTypeDef радикально отличается от USART_InitTypeDef, как я мог!
Пт ноя 16, 2018 00:06:15