Реклама на сайте English version  DatasheetsDatasheets

KAZUS.RU - Электронный портал. Принципиальные схемы, Datasheets, Форум по электронике

Новости электроники Новости Литература, электронные книги Литература Документация, даташиты Документация Поиск даташитов (datasheets)Поиск PDF
  От производителей
Новости поставщиков
В мире электроники

  Сборник статей
Электронные книги
FAQ по электронике

  Datasheets
Поиск SMD
Он-лайн справочник

Принципиальные схемы Схемы Каталоги программ, сайтов Каталоги Общение, форум Общение Ваш аккаунтАккаунт
  Каталог схем
Избранные схемы
FAQ по электронике
  Программы
Каталог сайтов
Производители электроники
  Форумы по электронике
Помощь проекту


 
Опции темы
Непрочитано 13.10.2012, 12:41  
polyname
Прописка
 
Регистрация: 19.05.2012
Сообщений: 99
Сказал спасибо: 0
Сказали Спасибо 10 раз(а) в 8 сообщении(ях)
polyname на пути к лучшему
По умолчанию Re: Изучаем STM32 Cortex M3

Цитата:
ИТОГО три таблицй займут ровно 1024 байта !!!
однако... неужели это стоит экономии одной микросекунды (или даже меньше, нужно считать...) ?
Реклама:
polyname вне форума  
Непрочитано 13.10.2012, 14:31  
=GM=
Прописка
 
Регистрация: 21.09.2009
Сообщений: 218
Сказал спасибо: 1
Сказали Спасибо 29 раз(а) в 27 сообщении(ях)
=GM= на пути к лучшему
По умолчанию Re: Изучаем STM32 Cortex M3

Сообщение от Boba_spb Посмотреть сообщение
Ну, например для AVR ки, в R16 - уже байт
Вот три команды -
ldi ZH,(High)SymLow*2
mov ZL,R16
lpm R17,Z
и в R17 уже НЕХ.младшей тетрады
еще пару команд
ldi ZH,(High)SymHigh*2
lpm R18,Z
и в R18 уже НЕХ.старшей тетрады
Ну я ж сказал, для однобайтного числа (8 бит) нужно составить две таблицы по 256 байт каждая, всего 512.

Покажите теперь в соответствии с вашим табличным подходом, таблицы для двухбайтного числа (16 бит). Повторю, что нужны четыре таблицы по 65536 байт каждая. Пожалуйста, подтвердите или опровергните
=GM= вне форума  
Непрочитано 13.10.2012, 20:27  
Boba_spb
Почётный гражданин KAZUS.RU
 
Регистрация: 08.06.2008
Сообщений: 1,394
Сказал спасибо: 4
Сказали Спасибо 183 раз(а) в 167 сообщении(ях)
Boba_spb на пути к лучшему
По умолчанию Re: Изучаем STM32 Cortex M3

int a=0xABCD;
срфк str[256];
char unsigned *ptD=(char unsigned*)&a;
short *ptS=(short *)&str;
short *ptT=(short *)Symbol_hex;
*ptS++=ptT[*ptD++];
*ptS++=ptT[*ptD++];

про Symbl_Hex гляньте выше за пару постов.

Все, пора закрывать про hex.
Нам по молодости приходилось БПФ реализовывать на MCS51, А тут про таблицы понять не могут - килобайты мерещатся.
Я первый раз писал для MCS51 в 1989 году. ПЗУ тады ультрафиалетом стирались. Жизнь заставляла писать коротко, да что б работало быстро.
Сейчас под задачу выбирай что хочешь - цена вопроса даже на литр приличной водки не тянет. И пиши на чем хочешь и сколько хочешь. Если только .....
Boba_spb вне форума  
Сказали "Спасибо" Boba_spb
=GM= (14.10.2012)
Непрочитано 14.10.2012, 19:56  
=GM=
Прописка
 
Регистрация: 21.09.2009
Сообщений: 218
Сказал спасибо: 1
Сказали Спасибо 29 раз(а) в 27 сообщении(ях)
=GM= на пути к лучшему
По умолчанию Re: Изучаем STM32 Cortex M3

1. Прежде всего, Boba_spb, спасибо за разъяснение метода байтовой адресации в программе на си, и, хотя в примерах много напутано, удалось малёк разобраться. В итоге мои знания о программировании на си немного продвинулись вперёд.

2. По мне, так ссылаться на прошлые заслуги это моветон. мало ли кто и что делал по молодости, или даже сейчас. Я же не ссылаюсь на аналитические функции и как удалось подвинуть вбок теорию Котельникова...
=GM= вне форума  
Непрочитано 17.10.2012, 19:49  
pasipaka
Прописка
 
Регистрация: 21.03.2011
Сообщений: 107
Сказал спасибо: 15
Сказали Спасибо 5 раз(а) в 5 сообщении(ях)
pasipaka на пути к лучшему
По умолчанию Re: Изучаем STM32 Cortex M3

Проблема с stm32f105rc.
Кварц на 12MHz.
IAR.

Что-то я с частотой срабатывания прерывания SysTick_Handler не смог согласиться.
Начал копать на какой же скорости работает камень.
Только на ноге ПортА пин 1 ничего не весит. Решил его "подергать".

Так вот
инициализация генератора:

Код:
void InitRCC(void)
{
  __IO uint32_t StartUpCounter = 0, HSEStatus = 0;
  
  /* SYSCLK, HCLK, PCLK2 and PCLK1 configuration ---------------------------*/    
  /* Enable HSE */    
  RCC-›CR |= ((uint32_t)RCC_CR_HSEON);
 
  /* Wait till HSE is ready and if Time out is reached exit */
  do
  {
    HSEStatus = RCC-›CR & RCC_CR_HSERDY;
    StartUpCounter++;  
  } while((HSEStatus == 0) && (StartUpCounter != HSE_STARTUP_TIMEOUT));

  if ((RCC-›CR & RCC_CR_HSERDY) != RESET)
  {
    HSEStatus = (uint32_t)0x01;
  }
  else
  {
    HSEStatus = (uint32_t)0x00;
  }  

  if (HSEStatus == (uint32_t)0x01)
  {
    /* Enable Prefetch Buffer */
    FLASH-›ACR |= FLASH_ACR_PRFTBE;

    /* Flash 2 wait state */
    FLASH-›ACR &= (uint32_t)((uint32_t)~FLASH_ACR_LATENCY);
    FLASH-›ACR |= (uint32_t)FLASH_ACR_LATENCY_2;    

 
    /* HCLK = SYSCLK */
    RCC-›CFGR |= (uint32_t)RCC_CFGR_HPRE_DIV1;
      
    /* PCLK2 = HCLK */
    RCC-›CFGR |= (uint32_t)RCC_CFGR_PPRE2_DIV1;
    
    /* PCLK1 = HCLK */
    RCC-›CFGR |= (uint32_t)RCC_CFGR_PPRE1_DIV2;

   RCC-›CFGR2 = 0;
    
      
    /* Enable PLL2 */
    RCC-›CR |= RCC_CR_PLL2ON; 
    /* Wait till PLL2 is ready */
    while((RCC-›CR & RCC_CR_PLL2RDY) == 0)
    {
    } 
    
   
    /* PLL configuration: PLLCLK = PREDIV1 * 6 = 72 MHz */ 
    RCC-›CFGR &= (uint32_t)~(RCC_CFGR_PLLXTPRE | RCC_CFGR_PLLSRC | RCC_CFGR_PLLMULL);
    RCC-›CFGR |= (uint32_t)(RCC_CFGR_PLLXTPRE_PREDIV1 | RCC_CFGR_PLLSRC_PREDIV1 | 
                                                          RCC_CFGR_PLLMULL6); //RCC_CFGR_PLLMULL9); 

    /* Enable PLL */
    RCC-›CR |= RCC_CR_PLLON;

    /* Wait till PLL is ready */
    while((RCC-›CR & RCC_CR_PLLRDY) == 0)
    {
    }
    
    /* Select PLL as system clock source */
    RCC-›CFGR &= (uint32_t)((uint32_t)~(RCC_CFGR_SW));
    RCC-›CFGR |= (uint32_t)RCC_CFGR_SW_PLL;    

    /* Wait till PLL is used as system clock source */
    while ((RCC-›CFGR & (uint32_t)RCC_CFGR_SWS) != (uint32_t)0x08)
    {
    }
  }
  else
  { /* If HSE fails to start-up, the application will have wrong clock 
         configuration. User can add here some code to deal with this error */
  }
}
Инициализация порта:

Код:
void common_port_init(void)
{
  RCC-›APB2ENR |= RCC_APB2ENR_IOPAEN // takting Ports
              |  RCC_APB2ENR_IOPBEN 
              |  RCC_APB2ENR_IOPCEN 
              |  RCC_APB2ENR_IOPDEN ;
  
  RCC-›APB2ENR |= RCC_APB2ENR_AFIOEN; // takting alternate function
  
  GPIOA-›CRL = 0;
  GPIOA-›CRH = 0;
  GPIOB-›CRL = 0;
  GPIOB-›CRH = 0;
  GPIOC-›CRL = 0;
  GPIOC-›CRH = 0;
  GPIOD-›CRL = 0;
  GPIOD-›CRH = 0;
  
  AFIO-›MAPR |= AFIO_MAPR_SWJ_CFG_1; // ((uint32_t)0x02000000)        /*!‹ Bit 1 */
  // Bits 26:24 SWJ_CFG[2:0]: Serial wire JTAG configuration
  // 010: JTAG-DP Disabled and SW-DP Enabled
}
затем еще отдельно по PortA.1:
Код:
   GPIOA-›CRL |= GPIO_CRL_MODE1; //50MHz  set b11000 output max speed 50MHz ((uint32_t)0x00000030) =b 11 0000
   GPIOA-›CRL &= ~GPIO_CRL_CNF1; //reset 00  p-p mode pin 1    ((uint32_t)0x000000C0) =b 1100 0000

И дергаем ногу:

Код:
  while(1)
  {
GPIOA-›BSRR = GPIO_BSRR_BS1;
GPIOA-›BSRR = GPIO_BSRR_BR1;

  }
}

И на выходе получаю.... см. осцилограмму

Вопрос: почему такая низкая частота - ок. 1,4МГц?
Периферия тактируется на 36МГц. Ядро должно быть 72.
Ожидал около 5МГц. Да и под 10 возможно...
Да и почему форма сигнала пила? На нове ничего нету кроме разьема.

Плата дисковери с 24МГц с аналогичным дерганьем Б порта дает 3,4МГц и форма сигнала - прямоугольник...

З.Ы.
Не пинайте. Код не мой. Дописываю.
Миниатюры:
Нажмите на изображение для увеличения
Название: ADS00001.png
Просмотров: 57
Размер:	5.2 Кб
ID:	39617  
pasipaka вне форума  
Непрочитано 17.10.2012, 22:37  
Hives
Гражданин KAZUS.RU
 
Регистрация: 25.11.2010
Сообщений: 516
Сказал спасибо: 1
Сказали Спасибо 126 раз(а) в 109 сообщении(ях)
Hives на пути к лучшему
По умолчанию Re: Изучаем STM32 Cortex M3

судя по амплитуде, на выходе шум от соседей, но никак не сигнал
Hives вне форума  
Непрочитано 17.10.2012, 23:21  
pasipaka
Прописка
 
Регистрация: 21.03.2011
Сообщений: 107
Сказал спасибо: 15
Сказали Спасибо 5 раз(а) в 5 сообщении(ях)
pasipaka на пути к лучшему
По умолчанию Re: Изучаем STM32 Cortex M3

Сообщение от Hives Посмотреть сообщение
судя по амплитуде, на выходе шум от соседей, но никак не сигнал
дамс таких частот там не найду.... Есть плис, от которой по прерыванию МК получает пакет 4700раз в секунду.

Но когда снимал осцилограмму прерывания были запрещены.

Еще есть матрица, которая тактируется 10МГц. На такой же частоте и ацп работает.
Затем плис переваоивает и дает в мк.
pasipaka вне форума  
Непрочитано 17.10.2012, 23:24  
Easyrider83
Гуру портала
 
Аватар для Easyrider83
 
Регистрация: 27.10.2008
Адрес: ЕС
Сообщений: 10,835
Сказал спасибо: 919
Сказали Спасибо 4,308 раз(а) в 2,573 сообщении(ях)
Easyrider83 на пути к лучшему
По умолчанию Re: Изучаем STM32 Cortex M3

pasipaka, ловите генератор кода. Очень легко запустите ваш кварц.
Вложения:
Тип файла: rar STM32generator.rar (344.5 Кб, 172 просмотров)
Easyrider83 вне форума  
Эти 2 пользователя(ей) сказали Спасибо Easyrider83 за это сообщение:
a-fisher (18.10.2012), pasipaka (18.10.2012)
Непрочитано 17.10.2012, 23:25  
Hives
Гражданин KAZUS.RU
 
Регистрация: 25.11.2010
Сообщений: 516
Сказал спасибо: 1
Сказали Спасибо 126 раз(а) в 109 сообщении(ях)
Hives на пути к лучшему
По умолчанию Re: Изучаем STM32 Cortex M3

pasipaka это, несомненно, очень интересно, но не по делу.
Easyrider83 так у него код уже сгенеренный мастером.
Hives вне форума  
Непрочитано 18.10.2012, 07:18  
BolshoyK
Гражданин KAZUS.RU
 
Регистрация: 25.11.2009
Сообщений: 609
Сказал спасибо: 37
Сказали Спасибо 140 раз(а) в 72 сообщении(ях)
BolshoyK на пути к лучшему
По умолчанию Re: Изучаем STM32 Cortex M3

Допилил демку, BMP085 + отладочная плата HY-MINI STM32. Рассчеты целочисленный и с плавающей точкой. последний по доке: http://wmrx00.sourceforge.net/Arduino/BMP085-Calcs.pdf Единственно что неудобно для сравнения целочисленного метода и с плавающей точкой - берутся разные семплы, по этому исходные данные не идентичны в расчетах.
http://serg22.sibgtu.ru/radio/BMP085_Stm32.rar

BolshoyK вне форума  
 

Закладки
Опции темы

Ваши права в разделе
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.

Быстрый переход

Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Школа АRMрестлинга Uragan90 Микроконтроллеры, АЦП, память и т.д 54 22.08.2011 16:13
ARM Cortex M3 + Linux SiMiLya Микроконтроллеры, АЦП, память и т.д 10 17.06.2011 17:20
Помогите с STM32 - очень нужно... yakuzaa Микроконтроллеры, АЦП, память и т.д 60 04.08.2010 11:04
Как добавить поддержку для STM32 SFHK Микроконтроллеры, АЦП, память и т.д 11 18.12.2009 18:09


Часовой пояс GMT +4, время: 13:16.


Powered by vBulletin® Version 3.8.4
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd. Перевод: zCarot