Кто сам изучил програмирование мк?

Флейм в чистом виде - все что угодно...
Но - в рамках закона :)
nahimovv
Нашел транзистор. Понюхал.
Сообщения: 180
Зарегистрирован: Чт янв 23, 2014 01:51:35

Re: Кто сам изучил програмирование мк?

Сообщение nahimovv »

BOB51 писал(а):"16 Кб FLASH"

Задача: Сделать восьмиразрядный семисегментник с динамической индикацией на двух 74HC595 по SPI. Вывести на дисплей "76543210".
STM32F05X, Кейл.
Program Size: Code=696 RO-data=224 RW-data=16 ZI-data=1024
Пустой проект:
Program Size: Code=344 RO-data=208 RW-data= 0 ZI-data=1024
Разница:
Program Size: Code=352 RO-data= 16 RW-data=16 ZI-data= 0
Итого понадобилось: 369 байт ROM и 16 байт RAM на всё про всё.

Если добавить ещё 74HC595 и замутить "бегущую строку" на матрицах 8Х8, то текст проги не изменится, а расходы ROM и RAM уйдут только на таблицы символов и увеличение выходного буфера.
Представьте данные по аналогичному коду под АВР, ждём с нетерпением!
a5021 писал(а):При всех достоинствах АРМов, у них есть и неприметный на первый взгляд недостаток, непосредственно вытекающий из достоинств, -- требуют много писанины. Если проект не нуждается в соответствующих наворотах, то быстрее будет его реализовать именно на мелком МК.

140 строк текста на СИ, включая пустые строки для улучшения читаемости, без применения SPL.
SIM31 писал(а):Более скоростные ARM, будут хороши в обработке видеосигналов, но ногами дрыгать, в мощном блоке питания, будут намного хуже.

Та ну? С чего такие выводы?
Аватара пользователя
menzoda
Вымогатель припоя
Сообщения: 535
Зарегистрирован: Вт авг 28, 2012 22:21:33

Re: Кто сам изучил програмирование мк?

Сообщение menzoda »

SIM31 писал(а):В остальном ARM сложнее PIC. Там только заголовок программы с инициализацией оборудования больше, чем многие программы на PIC, неужели это не очевидно? :))

Для инициализации МК на ARM необходим небольшой стартап файл, все остальное опционально. У пиков это скрыто от пользователя за какими-нибудь конфигурационными битами, автоматически генерируемым кодом и т.п. Хватит уже путать часто бестолковые и ненужные "удобности" и простоту архитектуры. Архитектура везде одинаковая, плюс-минус несколько команд не делают ее сложнее.

Спойлер

Код: Выделить всё


; ----------
; Выделение области памяти под стек.
; ----------

UND_STACK_SIZE  EQU     0x00000000
SVC_STACK_SIZE  EQU     0x00000008
ABT_STACK_SIZE  EQU     0x00000000
FIQ_STACK_SIZE  EQU     0x00000000
IRQ_STACK_SIZE  EQU     0x00000080
USR_STACK_SIZE  EQU     0x00000200
ISR_STACK_SIZE  EQU     (UND_STACK_SIZE + SVC_STACK_SIZE + ABT_STACK_SIZE + FIQ_STACK_SIZE + IRQ_STACK_SIZE)


                AREA    STACK, NOINIT, READWRITE, ALIGN=3

stack_limit      SPACE   USR_STACK_SIZE + ISR_STACK_SIZE
stack_base



; ----------
; Выделение области памяти под кучу.
; ----------

HEAP_SIZE      EQU     0x00000000


                AREA    HEAP, NOINIT, READWRITE, ALIGN=3

heap_base      SPACE   HEAP_SIZE
heap_limit



; ----------
; Таблица векторов прерываний.
; ----------

            PRESERVE8
                AREA    RESET, CODE, READONLY
                ARM

vectors_mem      LDR     PC, rst_addr         
            LDR     PC, und_addr
            LDR     PC, swi_addr
            LDR     PC, pab_addr
            LDR     PC, dab_addr
            NOP
            LDR     PC, [PC, #-0x0FF0]
            LDR     PC, fiq_addr

rst_addr      DCD     rst_handler
und_addr      DCD     und_handler
swi_addr      DCD     swi_handler
pab_addr      DCD     pab_handler
dab_addr      DCD     dab_handler
                DCD     0
irq_addr      DCD     irq_handler
fiq_addr      DCD     fiq_handler



; ----------
; Обработчики прерываний по умолчанию.
; ----------

und_handler      B       und_handler
swi_handler      B       swi_handler
pab_handler      B       pab_handler
dab_handler      B       dab_handler
irq_handler      B       irq_handler
fiq_handler      B       fiq_handler



; ----------
; Обработчик прерывания reset.
; ----------

MODE_USR        EQU     0x10
MODE_FIQ        EQU     0x11
MODE_IRQ        EQU     0x12
MODE_SVC        EQU     0x13
MODE_ABT        EQU     0x17
MODE_UND        EQU     0x1B
MODE_SYS        EQU     0x1F

I_BIT           EQU     0x80
F_BIT           EQU     0x40

            AREA   |.text|, CODE, READONLY
            EXPORT   rst_handler
            IMPORT   __main
            
rst_handler      
            LDR     R0, =stack_base

            MSR     CPSR_c, #MODE_UND:OR:I_BIT:OR:F_BIT
            MOV     SP, R0
            SUB     R0, R0, #UND_STACK_SIZE

                MSR     CPSR_c, #MODE_ABT:OR:I_BIT:OR:F_BIT
                MOV     SP, R0
                SUB     R0, R0, #ABT_STACK_SIZE

                MSR     CPSR_c, #MODE_FIQ:OR:I_BIT:OR:F_BIT
                MOV     SP, R0
                SUB     R0, R0, #FIQ_STACK_SIZE

                MSR     CPSR_c, #MODE_IRQ:OR:I_BIT:OR:F_BIT
                MOV     SP, R0
                SUB     R0, R0, #IRQ_STACK_SIZE

                MSR     CPSR_c, #MODE_SVC:OR:I_BIT:OR:F_BIT
                MOV     SP, R0
                SUB     R0, R0, #SVC_STACK_SIZE

                MSR     CPSR_c, #MODE_USR
                MOV     SP, R0
                SUB     SL, SP, #USR_STACK_SIZE

                LDR     R0, =__main
                BX      R0



; ----------
; Инициализация стека и кучи.
; ----------

                AREA    |.text|, CODE, READONLY
                EXPORT  __user_setup_stackheap
                IMPORT   __use_two_region_memory
               
__user_setup_stackheap
                LDR     R0, =heap_base
                LDR     R1, =stack_base
                LDR     R2, =heap_limit
                LDR     R3, =stack_limit
                BX      LR
               
            END
               

Это для ARM7TDMI. Все прямолинейно и прозрачно. Если задаться целью ужать, то можно его сделать совсем маленьким. Если из-за этого вы считаете АРМ дико сложным, то даже не знаю что сказать...


Начиная от MCS51, без всякой периферии, пошло усложнение по нарастающей, больше оборудования, больше таймеров, DMA, отдельное такитирование флэша, памяти, портов, АЦП, ЦАП, больше особенностей.

Тут опять путается понятие ядра и периферии. Не нравится когда много всего понавешано? Возьмите более простой контроллер на АРМ, хотя какого черта? Просто не используйте эту периферию и все! Ядро то здесь причем?

SIM31 писал(а):На обычных компах, компиляторы обычно даже под 1 бит сразу выделяют 32-64 бита, так процессору быстрее обрабатывать поток данных, особенно конвееру.

Да никто не выделяет под байт данных целое слово и никогда не выделял. Может только в каких-нибудь экзотических ситуациях.

SIM31 писал(а):Почему STM32 так себя ограничил

Опять путается семейство микроконтроллеров и ядро. STM просто лицензировал архитектуру у ARM и нашлепал микроконтроллеров со своей периферией. STM != ARM.

SIM31 писал(а):Если STM32 аппаратно обрабатывает 8-битные переменные, обращается к любому байту памяти, разработчики молодцы, всё продумали, кто же против?

Не знаю о чем ты тут, но все процессорные регистры у ARM в STM32 32-битные. При этом инструкции чтения/записи из/в память могут работать с байтами, полусловами, словами и двойными словами.
Аватара пользователя
dosikus
Друг Кота
Сообщения: 3604
Зарегистрирован: Пн июл 28, 2008 22:12:01

Re: Кто сам изучил програмирование мк?

Сообщение dosikus »

menzoda писал(а):
SIM31 писал(а):Не знаю о чем ты тут,


Да он ,я так понял, запал на 32бит . :))) Думает восьмибитные переменные будут каждая занимать в флэше 32бита .
Аватара пользователя
Pika4u
Поставщик валерьянки для Кота
Сообщения: 2064
Зарегистрирован: Пт апр 24, 2009 11:39:16
Откуда: г.Оренбург

Re: Кто сам изучил програмирование мк?

Сообщение Pika4u »

sajkel писал(а):menzoda Спасибо за ответ.
Попробую конкретизировать свой вопрос.
1. Вы изучали программирование перед тем как заняться мк (я не говорю о школьном курсе)?
2. Вы пишете на си?
3. Вы можете написать с нуля программу скажем для простенького осциллографа с lcd дисплеем?
4. Были ли возле вас знакомые которые в этом хорошо разбирались и у которых можно было проконсультироваться?
5. Что вы использовали для того чтобы освоить мк?
6. Знали ли вы английский когда начинали?
7. Сколько вы этим занимаетесь?

1.Естественно. До МК я 2 писал программы на Си для компа.
2.Да
3.А зачем? Выйдет кака, эти осциллографы на том же ebay стоят копейки.
4.Неа, был google.ru и даташиты.
5.Паяльник, руки и голову
6.Неа. Благодаря даташитам английский немного подтянул даже :)))
7. В районе 2 лет.
Steve Jobs. 1955-2011. Мы помним, как ты преобразовал наш мир....
a5021
Друг Кота
Сообщения: 6452
Зарегистрирован: Пт сен 13, 2013 13:11:31

Re: Кто сам изучил програмирование мк?

Сообщение a5021 »

nahimovv писал(а):140 строк текста на СИ, включая пустые строки для улучшения читаемости, без применения SPL.
Представьте данные по аналогичному коду под АВР, ждём с нетерпением!

Вот код ардуины для динамической индикации. 4 знака. 60 строк кода, половина из которых дефайны для читабельности. "Binary sketch size: 822 bytes"

Спойлер

Код: Выделить всё

#define DIGIT_1  (1 << PORTC3)
#define DIGIT_2  (1 << PORTC2)
#define DIGIT_3  (1 << PORTB1)
#define DIGIT_4  (1 << PORTB0)

#define SEG_A    (1<<6)
#define SEG_B    (1<<5)
#define SEG_C    (1<<0)
#define SEG_D    (1<<3)
#define SEG_E    (1<<4)
#define SEG_F    (1<<7)
#define SEG_G    (1<<1)
#define SEG_DP   (1<<2)

#define SIGN_BLANK  0
#define SIGN_8   0xFF - SEG_DP
#define SIGN_0   SIGN_8 - SEG_G
#define SIGN_1   SEG_B + SEG_C
#define SIGN_2   SIGN_8 - SEG_F - SEG_C
#define SIGN_3   SIGN_8 - SEG_F - SEG_E
#define SIGN_4   SIGN_1 + SEG_G + SEG_F
#define SIGN_6   SIGN_8 - SEG_B
#define SIGN_5   SIGN_6 - SEG_E
#define SIGN_7   SIGN_1 + SEG_A
#define SIGN_9   SIGN_8 - SEG_E

unsigned char codes[] = {SIGN_0, SIGN_1, SIGN_2, SIGN_3, SIGN_4, SIGN_5, SIGN_6, SIGN_7, SIGN_8, SIGN_9};
volatile unsigned char dispBuf[] = {SIGN_BLANK, SIGN_BLANK, SIGN_BLANK, SIGN_BLANK}, bufIndex = 0;

void setup() {               
  DDRB=(0<<DDB7) | (0<<DDB6) | (0<<DDB5) | (0<<DDB4) | (0<<DDB3) | (1<<DDB2) | (1<<DDB1) | (1<<DDB0);
  PORTB=(0<<PORTB7) | (0<<PORTB6) | (0<<PORTB5) | (0<<PORTB4) | (0<<PORTB3) | (0<<PORTB2) | (0<<PORTB1) | (0<<PORTB0);
  DDRC=(0<<DDC6) | (0<<DDC5) | (0<<DDC4) | (1<<DDC3) | (1<<DDC2) | (0<<DDC1) | (0<<DDC0);
  PORTC=(0<<PORTC6) | (0<<PORTC5) | (0<<PORTC4) | (0<<PORTC3) | (1<<PORTC2) | (0<<PORTC1) | (0<<PORTC0);
  DDRD=(1<<DDD7) | (1<<DDD6) | (1<<DDD5) | (1<<DDD4) | (1<<DDD3) | (1<<DDD2) | (1<<DDD1) | (1<<DDD0);
  PORTD=(0<<PORTD7) | (0<<PORTD6) | (0<<PORTD5) | (0<<PORTD4) | (0<<PORTD3) | (0<<PORTD2) | (0<<PORTD1) | (0<<PORTD0);
  TCCR2B=(1<<CS22) | (1<<CS20);
  TIMSK2=(1<<TOIE2);
}

void loop() {
  while(1);
}

ISR(TIMER2_OVF_vect) {
  PORTB &=  ~(DIGIT_3 | DIGIT_4);
  PORTC &=  ~(DIGIT_1 | DIGIT_2);
  if (++bufIndex == 4) bufIndex = 0;
  PORTD = dispBuf[bufIndex];
  switch (bufIndex) {
    case 0: PORTC |= DIGIT_1;
            break;
    case 1: PORTC |= DIGIT_2;
            break;
    case 2: PORTB |= DIGIT_3;
            break;
    case 3: PORTB |= DIGIT_4;
            break;   
  }
}

И хотя это не точное сравнение, грамотный человек должен все понять.
Аватара пользователя
oleg110592
Друг Кота
Сообщения: 3832
Зарегистрирован: Сб сен 10, 2011 17:46:25

Re: Кто сам изучил програмирование мк?

Сообщение oleg110592 »

у ардуины еще 2 KB бутлоадер, а в коде не заметил ничего ардуинового - должно и винавре работать. Попробуйте настроить порты таймер как положено праведному ардуинщику - типа pinMode(13, OUTPUT);. :) Индикатор не 8 а 4 разряда, нет вывода цифр - итого можно сравнить:
СТМ32: 369 байт ROM и 16 байт RAM на всё про всё

АВР: "Binary sketch size: 822 bytes"

вывод: Cortex M0 код плотнее как минимум в 2 раза в сравнении с AVR
a5021
Друг Кота
Сообщения: 6452
Зарегистрирован: Пт сен 13, 2013 13:11:31

Re: Кто сам изучил програмирование мк?

Сообщение a5021 »

oleg110592 писал(а):у ардуины еще 2 KB бутлоадер, а в коде не заметил ничего ардуинового - должно и винавре работать. Попробуйте настроить порты таймер как положено праведному ардуинщику - типа pinMode(13, OUTPUT);. :)

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

Индикатор не 8 а 4 разряда, нет вывода цифр

Не серьезно. Четыре дополнительных разряда это это еще четыре селектора в теле свитче. Вывод цифр -- операции присвоения соответствующих разрядов буфера. Десять строк, максимум. Давайте дефайны уберу, строк в пятьдесят уложится все, вместе с тем, что вы еще там придумаете.

вывод: Cortex M0 код плотнее как минимум в 2 раза в сравнении с AVR


Вывод: вы делаете скороспелые выводы, не совсем даже понимая, что с чем сравниваете.
Аватара пользователя
oleg110592
Друг Кота
Сообщения: 3832
Зарегистрирован: Сб сен 10, 2011 17:46:25

Re: Кто сам изучил програмирование мк?

Сообщение oleg110592 »

У нас сравнение переросло...
Не у нас а у вас (с) :)) Понял - надо сравнивать количество строк кода. :shock:
nahimovv
Нашел транзистор. Понюхал.
Сообщения: 180
Зарегистрирован: Чт янв 23, 2014 01:51:35

Re: Кто сам изучил програмирование мк?

Сообщение nahimovv »

oleg110592 писал(а):Индикатор не 8 а 4 разряда, нет вывода цифр

Та ладно, нам не трудно! STM32F05X, Кейл, четыре разряда, вывод через порт.
Program Size: Code=536 RO-data=224 RW-data=16 ZI-data=1024

Пустой проект:
Program Size: Code=344 RO-data=208 RW-data= 0 ZI-data=1024

Разница:
Program Size: Code=192 RO-data= 16 RW-data=16 ZI-data= 0

Итого:
ROM - 208байт, RAM - 16байт

80 строк текста, из них всего 4 строчки майн.
При увеличении количества разрядов до восьми изменяются только дефайны и размер буфера.
Аватара пользователя
oleg110592
Друг Кота
Сообщения: 3832
Зарегистрирован: Сб сен 10, 2011 17:46:25

Re: Кто сам изучил програмирование мк?

Сообщение oleg110592 »

эх по количеству строк stm32 все таки проиграл :cry:
вывод: людям с медленным умением набора кода на клавиатуре стм32 не стОит изучать
но никто и не сказал, что динамическую индикацию на стм32 можно сделать используя DMA, причем ядро может спокойно спать или выполнять какую другую полезную функцию
a5021
Друг Кота
Сообщения: 6452
Зарегистрирован: Пт сен 13, 2013 13:11:31

Re: Кто сам изучил програмирование мк?

Сообщение a5021 »

oleg110592 писал(а):Понял - надо сравнивать количество строк кода.

Да, именно так и именно об этом я говорил в самом начале. В части случаев, при реализации небольших проектов это будет преимуществом маленьких МК перед большими. Попытка представить АРМы в мелких корпусах, как "эквивалент восьмибиток, только лучше", не совсем корректна.
но никто и не сказал, что динамическую индикацию на стм32 можно сделать используя DMA

Можно, наверное еще и "за вискИ", только "никто и не сказал", что это проще и быстрее.

Чтобы крутить винты и шурупы у меня имеются отвертка и шуруповерт. Что же лучше? Если надо отвернуть пару винтов в корпусе, я возьму отвертку, т.к. она всегда под рукой и я сделаю дело быстрее, чем вытащу шуруповерт из ящика инструментов. Если надо собрать шкаф, то я полезу за шуруповертом в ящик, а потом вгоню сотню шурупов туда, куда нужно, без малейшего напряга и быстрее, чем я бы это сделал отверткой. Мораль: преимуществами надо пользоваться там, где они дают выигрыш, а не загоняться до посинения, доказывая, что везде надо использовать шуруповерт, т.к. у него число оборотов выше.
Аватара пользователя
oleg110592
Друг Кота
Сообщения: 3832
Зарегистрирован: Сб сен 10, 2011 17:46:25

Re: Кто сам изучил програмирование мк?

Сообщение oleg110592 »

а если представить так: отвертка это младшенькие (типа cortex m0), а шуруповерт это старшенькие армы и тогда радуга засияет всеми красками. Новичку поначалу придется освоить работу с отверткой, а потом останется легко приделать к ней движок, чтоб получился шуруповерт.
Последний раз редактировалось oleg110592 Чт янв 23, 2014 16:28:16, всего редактировалось 1 раз.
nahimovv
Нашел транзистор. Понюхал.
Сообщения: 180
Зарегистрирован: Чт янв 23, 2014 01:51:35

Re: Кто сам изучил програмирование мк?

Сообщение nahimovv »

a5021 писал(а):В части случаев, при реализации небольших проектов это будет преимуществом маленьких МК перед большими.

Не будет! Для маленьких МК важнее плотность кода, а не количество строк. И здесь маленькие STM в выигрыше перед АВР.
Попытка представить АРМы в мелких корпусах, как "эквивалент восьмибиток, только лучше", не совсем корректна.

Это не попытка, это факт!
но никто и не сказал, что динамическую индикацию на стм32 можно сделать используя DMA

На 20 строчек больше это и есть настройка TIM и DMA.
Мораль: преимуществами надо пользоваться там, где они дают выигрыш, а не загоняться до посинения, доказывая, что везде надо использовать шуруповерт, т.к. у него число оборотов выше.

Выигрыш от юзания АРМ, даже мелких, очевидна, с этим просто нужно смириться.
Аватара пользователя
oleg110592
Друг Кота
Сообщения: 3832
Зарегистрирован: Сб сен 10, 2011 17:46:25

Re: Кто сам изучил програмирование мк?

Сообщение oleg110592 »

опять холивар, один классик юмора хорошо сказал:
Давайте спорить о вкусе устриц и кокосовых орехов с теми, кто их ел, до хрипоты, до драки, воспринимая вкус еды на слух, цвет на зуб, вонь на глаз, представляя себе фильм по названию, живопись по фамилии, страну по "Клубу кинопутешествий", остроту мнений по хрестоматии.
nahimovv
Нашел транзистор. Понюхал.
Сообщения: 180
Зарегистрирован: Чт янв 23, 2014 01:51:35

Re: Кто сам изучил програмирование мк?

Сообщение nahimovv »

oleg110592 писал(а):опять холивар

И в мыслях не было! Оба примера с рабочих проектов, работают в железе, а дальше каждый пусть решает сам.
Аватара пользователя
oleg110592
Друг Кота
Сообщения: 3832
Зарегистрирован: Сб сен 10, 2011 17:46:25

Re: Кто сам изучил програмирование мк?

Сообщение oleg110592 »

да я о том что опять бессмысленный (который раз уже) спор о вкусе между людьми, которые пробовали устриц и которые не.
Сам я уже откусил кусочек - понравилось. 5 февраля приедут заказанные платки с STM32F429 (нужен вывод на телевизор) - придется давиться сразу большим куском.
a5021
Друг Кота
Сообщения: 6452
Зарегистрирован: Пт сен 13, 2013 13:11:31

Re: Кто сам изучил програмирование мк?

Сообщение a5021 »

nahimovv писал(а):Для маленьких МК важнее плотность кода, а не количество строк.

Это кому важнее? С точки зрения простоты и скорости разработки, плотность кода это вообще отфонарная характеристика. Ценители пусть над плотностью кода трепещут, а мне надо сделать устройство быстро и просто. И от количества строк это зависит куда, как больше, чем от некой "плотности кода".

Это не попытка, это факт!

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

Выигрыш от юзания АРМ, даже мелких, очевидна, с этим просто нужно смириться.

Кому очевиден? Вам? Мне, как человеку имеющему дело и с тем и другим (и третьим), совсем не очевиден.
Оба примера с рабочих проектов, работают в железе, а дальше каждый пусть решает сам.

Мне решать помогает один и тот же, не завершенный пока еще проект, существующий в виде прототипов на трех платформах: AVR, STM8 и STM32. Чем дело закончится еще не знаю, но совершенно очевидно, что вкусом устриц вы лучше кого-нибудь другого стращайте.
nahimovv
Нашел транзистор. Понюхал.
Сообщения: 180
Зарегистрирован: Чт янв 23, 2014 01:51:35

Re: Кто сам изучил програмирование мк?

Сообщение nahimovv »

a5021 писал(а):Это кому важнее? С точки зрения простоты и скорости разработки, плотность кода это вообще отфонарная характеристика.

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

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

Или копипаста заранее написанного кода, пусть даже с коррективами?
Мне, как человеку имеющему дело и с тем и другим (и третьим), совсем не очевиден.

Не знаю даже что и сказать!
Мне решать помогает один и тот же, не завершенный пока еще проект, существующий в виде прототипов на трех платформах: AVR, STM8 и STM32. Чем дело закончится еще не знаю, но совершенно очевидно, что вкусом устриц вы лучше кого-нибудь другого стращайте.

Это где я про устрицы говорил? Куски кода с STM8 на STM32 и обратно таскаю свободно, без затруднений - у них периферия практически одинакова, одни и те же решения легко реализуются и там, и там. Абстрагируйтесь от АВР, займитесь изучением железа STM8/32 и всё получится.
Аватара пользователя
oleg110592
Друг Кота
Сообщения: 3832
Зарегистрирован: Сб сен 10, 2011 17:46:25

Re: Кто сам изучил програмирование мк?

Сообщение oleg110592 »

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

тогда предложу делать устройства на PIC16F505:

Precision 4 MHz internal oscillator
Baseline Core with 33 Instructions, 2 Stack Levels
All single-cycle Instructions except for program branches which are two cycles
12-bit wide instructions
8-bit wide data path
25 mA source/sink current I/O
Low power (100nA) sleep current
One 8-bit timer (TMR0)
Watchdog timer (WDT)
In Circuit Serial Programming™ (ICSP™) capability
In-Circuit debugging support
Programmable code protection

один таймер, два порта, прерываний нет
настройка периферии максимум 5 строк - минимум писанины, только немножко дороже чем STM32F030
mrFox
Нашел транзистор. Понюхал.
Сообщения: 190
Зарегистрирован: Пт сен 21, 2007 17:53:23
Откуда: Зарайск

Re: Кто сам изучил програмирование мк?

Сообщение mrFox »

и с чего тут холивар AVR и STM32 - у обоих плотность кода примерно одинаковая
различие будет если использовать 32бит операции
да и компилятор не всегда генерит оптимальный код
правда если ножками дрыгать - у AVR 1 команда, у STM32 - 2

sajkel писал(а):1. Вы изучали программирование перед тем как заняться мк (я не говорю о школьном курсе)?
2. Вы пишете на си?
3. Вы можете написать с нуля программу скажем для простенького осциллографа с lcd дисплеем?
4. Были ли возле вас знакомые которые в этом хорошо разбирались и у которых можно было проконсультироваться?
5. Что вы использовали для того чтобы освоить мк?
6. Знали ли вы английский когда начинали?
7. Сколько вы этим занимаетесь?

1. програмист Delphi + базы данных
2. только на С
3. написал для STM32 и для XMega
4. нет - все сам
5. sprint layout + datashit
6. да
7. более 10 лет
Ответить

Вернуться в «МЯЯЯУ!»