STM32 новичку в ARM что к чему

Кто любит RISC в жизни, заходим, не стесняемся.
Аватара пользователя
dosikus
Друг Кота
Сообщения: 3604
Зарегистрирован: Пн июл 28, 2008 22:12:01

Re: STM32 новичку в ARM что к чему

Сообщение dosikus »

Задержка жесть... :)))
Реклама
HHIMERA
Друг Кота
Сообщения: 4583
Зарегистрирован: Вс дек 05, 2010 06:10:34
Откуда: ЮВ

Re: STM32 новичку в ARM что к чему

Сообщение HHIMERA »

Myp3ik писал(а):Сгорает :kill:
И сколько STM32 уже сгорело??? :)
"Я не даю готовых решений, я заставляю думать!"(С)
Реклама
zöner
Вымогатель припоя
Сообщения: 502
Зарегистрирован: Чт фев 16, 2012 19:00:11

Re: STM32 новичку в ARM что к чему

Сообщение zöner »

int j=0,i=0;
для уверенности можно добавить volatile
значит особых мер, в сравнении с теми же AVR по защите от статики предпринимать не нужно.
ошибаетесь
У STM32 ограничение тока короткого замыкания на выходах есть? Или сгорает?
у выходных транзисторов сопротивление канала ненулевое (особенно при настройке на малую скорость), но резистор на 50..100 Ом добавить не помешает (если ведете сигналы наружу платы - типа RS232, SWD, LCD и т.д.)
Darth Cuauhtemoc
Говорящий с текстолитом
Сообщения: 1699
Зарегистрирован: Вс июн 16, 2013 18:41:45

Re: STM32 новичку в ARM что к чему

Сообщение Darth Cuauhtemoc »

zöner писал(а):ошибаетесь
Неужели придется землить все - стол, себя, паяльную станцию? :)
Вопрос то интересует в том плане, могу я обращаться с ними так, как обращался с AVR (в смысле пайки)?
У кошки четыре ноги - вход, выход, земля и питание. Но трогать ее не моги - получится замыкание.
Реклама
Эиком - электронные компоненты и радиодетали
zöner
Вымогатель припоя
Сообщения: 502
Зарегистрирован: Чт фев 16, 2012 19:00:11

Re: STM32 новичку в ARM что к чему

Сообщение zöner »

нет, не все так печально. У меня еще ничего не горело, ничего не заземляю и вообще над этим не задумываюсь.
Хотя видел людей у которых от статики дохли контроллеры только так, не знаю от чего зависит - сопротивления кожи, одежды и т.д.
Реклама
Darth Cuauhtemoc
Говорящий с текстолитом
Сообщения: 1699
Зарегистрирован: Вс июн 16, 2013 18:41:45

Re: STM32 новичку в ARM что к чему

Сообщение Darth Cuauhtemoc »

У меня тоже никогда ни одна МОП-микросхема не горела от статики, и ни один МОП транзистор, хотя транзисторы, по крайней мере по даташитам (не знаю как в реальности) защитных стабилитронов затвор-исток не имели.
У кошки четыре ноги - вход, выход, земля и питание. Но трогать ее не моги - получится замыкание.
Реклама
Обфускатор
Родился
Сообщения: 13
Зарегистрирован: Пн апр 29, 2013 22:05:08

Re: STM32 новичку в ARM что к чему

Сообщение Обфускатор »

свежий взгляд на код выявил ошибку
нужно было

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

RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOA, ENABLE);  
вместо

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

RCC_AHBPeriphClockCmd(RCC_APB2Periph_GPIOA, ENABLE); 
из за этого тактирование портов не заводилось на физическом устройстве , хотя на симуляторе все бегало аж бегом :))
Аватара пользователя
Myp3ik
Мучитель микросхем
Сообщения: 450
Зарегистрирован: Вс янв 09, 2011 23:05:37
Откуда: СССР

Re: STM32 новичку в ARM что к чему

Сообщение Myp3ik »

HHIMERA, в режиме выхода PWM пару раз порты палил.
Иван Сусанин - первый полупроводник :solder:
Аватара пользователя
drakon
Грызет канифоль
Сообщения: 271
Зарегистрирован: Вт авг 09, 2011 15:01:44
Откуда: Харьков

Re: STM32 новичку в ARM что к чему

Сообщение drakon »

всем привет! расскажите какие в KEIL есть битовые переменные. я подключил хидер stdbool.h, в нем нашел такое #define bool _Bool, а где определение _Bool я не нашел. меня интересует сколько бит памяти занимает тип _Bool.
_Bool test = 1514634861836; //такая строка не вызывает у компилятора подозрений. пока в качестве переменных-флагов использую uint8_t, но, может, есть более подходящий для этого тип?
uk8amk
Поставщик валерьянки для Кота
Сообщения: 2222
Зарегистрирован: Вт ноя 27, 2007 11:32:06
Откуда: Tashkent

Re: STM32 новичку в ARM что к чему

Сообщение uk8amk »

drakon писал(а):расскажите какие в KEIL есть битовые переменные.
Из встроенной справки
__attribute__((bitband)) type attribute
ARM Compiler toolchain v5.02 for µVision Compiler Reference

Home > Compiler-specific Features > __attribute__((bitband)) type attribute

__attribute__((bitband)) type attribute
__attribute__((bitband)) is a type attribute that gives you efficient atomic access to single-bit values in SRAM and Peripheral regions of the memory architecture. It is possible to set or clear a single bit directly with a single memory access in certain memory regions, rather than having to use the traditional read, modify, write approach. It is also possible to read a single bit directly rather than having to use the traditional read then shift and mask operation. Example 10 illustrates the use of __attribute__((bitband)).

Example 10. Using __attribute__((bitband))

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

typedef struct {
  int i : 1;
  int j : 2;
  int k : 3;
} BB __attribute__((bitband));

BB bb __attribute__((at(0x20000004));

void foo(void)
{
  bb.i = 1;
}
Аватара пользователя
drakon
Грызет канифоль
Сообщения: 271
Зарегистрирован: Вт авг 09, 2011 15:01:44
Откуда: Харьков

Re: STM32 новичку в ARM что к чему

Сообщение drakon »

uk8amk, способ полезный, но не удобный. мне бы узнать про стандартный тип _Bool.
Аватара пользователя
Myp3ik
Мучитель микросхем
Сообщения: 450
Зарегистрирован: Вс янв 09, 2011 23:05:37
Откуда: СССР

Re: STM32 новичку в ARM что к чему

Сообщение Myp3ik »

drakon, в одной uint8_t можно хранить 8 флагов. Для удобства создать битовые маски для каждого бита. Я делаю так:

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

#define BIT_FLAG1 ((uint8_t)0x01)
#define BIT_FLAG2 ((uint8_t)0x02)
#define BIT_FLAG3 ((uint8_t)0x04)

uint8_t FLAGS;

//утановка 0 бита
FLAGS |= BIT_FLAG1;

//сброс 1 бита
FLAGS &= ~BIT_FLAG2;

//проверка 2 бита
if (FLAGS & BIT_FLAG3) ..... ;
Иван Сусанин - первый полупроводник :solder:
Аватара пользователя
oleg110592
Друг Кота
Сообщения: 3832
Зарегистрирован: Сб сен 10, 2011 17:46:25

Re: STM32 новичку в ARM что к чему

Сообщение oleg110592 »

может лучше по взрослому работать с битовыми переменными:
http://eugenemcu.ru/publ/13-1-0-77
Аватара пользователя
drakon
Грызет канифоль
Сообщения: 271
Зарегистрирован: Вт авг 09, 2011 15:01:44
Откуда: Харьков

Re: STM32 новичку в ARM что к чему

Сообщение drakon »

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

Re: STM32 новичку в ARM что к чему

Сообщение oleg110592 »

В стандарте C99 определён собственный тип логических данных _Bool.
Размер здесь:
http://www.keil.com/support/man/docs/ar ... bfcgfc.htm
Аватара пользователя
drakon
Грызет канифоль
Сообщения: 271
Зарегистрирован: Вт авг 09, 2011 15:01:44
Откуда: Харьков

Re: STM32 новичку в ARM что к чему

Сообщение drakon »

oleg110592, вот за это большее спасибо, сам найти не смог. а какой тогда толк с _Bool, если этот тип занимает как и char- 8bit?
The_D
Встал на лапы
Сообщения: 108
Зарегистрирован: Пт июл 06, 2012 14:28:17
Откуда: Россия. г.Смоленск

Re: STM32 новичку в ARM что к чему

Сообщение The_D »

Мне всегда было интересно, неужели в современных МК выпускаемых ST настолько мало памяти что вам жалко под переменные(у вас их наверное пара сотен) отвести полноценные 4 байта. МК 32 разрядные? Ну так пусть и переменные будут uint32. А вам 8 бит под тип bool жалко.

typedef enum{
true = (uint32) 0xFFFFFFFF, false = (uint32) 0x00000000,
} TBool;

Ужассс правда? :))
Аватара пользователя
oleg110592
Друг Кота
Сообщения: 3832
Зарегистрирован: Сб сен 10, 2011 17:46:25

Re: STM32 новичку в ARM что к чему

Сообщение oleg110592 »

какой тогда толк с _Bool
Наверное удобно и наглядно когда функция возвращает bool значение:

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

bool Compare ( uint32_t A, uint32_t B )
{
        if(A == B) return true;
        return false;
}
.....
if ( Compare( 4 , 7 ) == false ) bla-bla
Для флагов, наверное лучше использовать структуры, не забыть про это:
http://we.easyelectronics.ru/STM32/atom ... ex-m3.html
выше уже советовали
Последний раз редактировалось oleg110592 Чт авг 08, 2013 12:20:58, всего редактировалось 2 раза.
Аватара пользователя
Neekeetos
Держит паяльник хвостом
Сообщения: 993
Зарегистрирован: Пн сен 18, 2006 11:16:05
Откуда: Тула
Контактная информация:

Re: STM32 новичку в ARM что к чему

Сообщение Neekeetos »

oleg110592 писал(а): Наверное удобно и наглядно когда функция возвращает bool значение:
А мне кажется нету смысла усложнять, в си уже описан тип бул, он используется при сравнении и представляет собой обычный инт, если он равен нулю то false и если любое другое значение - true,
так что код по идее должен быть таким:

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

int Compare ( uint32_t A, uint32_t B )
{
        return (A == B);
}
.....
if ( Compare()  ) bla-bla
Информация по RLC mini находится >тут<
Аватара пользователя
oleg110592
Друг Кота
Сообщения: 3832
Зарегистрирован: Сб сен 10, 2011 17:46:25

Re: STM32 новичку в ARM что к чему

Сообщение oleg110592 »

это было так, для большей наглядности

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

if(A == B) bla-bla;
Ответить

Вернуться в «ARM»