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

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

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

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

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

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


 
Опции темы
Непрочитано 23.02.2017, 19:12  
CERGEI1982
Почётный гражданин KAZUS.RU
 
Аватар для CERGEI1982
 
Регистрация: 03.01.2007
Адрес: Россия,Иркутская обл.
Сообщений: 2,579
Сказал спасибо: 351
Сказали Спасибо 315 раз(а) в 193 сообщении(ях)
CERGEI1982 на пути к лучшему
По умолчанию Re: Keil uVision5 отладка

Странновато считает DWT,не сходится с SysTick. Может из-за делителя
SystemCoreClock/1000
циклов dwt=6501,хотя по логике 7200 должно быть

Код:
#define RTE_DEVICE_STDPERIPH_GPIO
#define RTE_DEVICE_STDPERIPH_RCC

#define    DWT_CYCCNT    *(volatile unsigned long *)0xE0001004
#define    DWT_CONTROL   *(volatile unsigned long *)0xE0001000
#define    SCB_DEMCR     *(volatile unsigned long *)0xE000EDFC
	
#include "stm32f10x.h"
#include "stm32f10x_conf.h"

uint16_t delay_count=0;
uint16_t flag_count=0;
uint16_t dwt=0;

void SysTick_Handler(void)  // 1 ms
{
	delay_count++;
	if(delay_count==1000)
	{
		delay_count=0;
		flag_count=1;
	}
	dwt=DWT_CYCCNT;
	DWT_CYCCNT = 0;
}

int main()
{
	GPIO_InitTypeDef GPIO_Init_Led;
	//uint32_t i;
	SCB_DEMCR |=CoreDebug_DEMCR_TRCENA_Msk; // DWT acsess
	DWT_CYCCNT = 0;
	DWT_CONTROL|= DWT_CTRL_CYCCNTENA_Msk; // enable count dwt
	
	
	GPIO_Init_Led.GPIO_Pin=GPIO_Pin_13;
	GPIO_Init_Led.GPIO_Mode=GPIO_Mode_Out_PP;
	GPIO_Init_Led.GPIO_Speed=GPIO_Speed_10MHz;
	
	RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOC,ENABLE  );
	
	GPIO_Init(GPIOC,&GPIO_Init_Led);
	
	SysTick_Config(SystemCoreClock/1000); //1 ms
	//RCC-›APB2ENR|=RCC_APB2ENR_IOPCEN;  // taktirovanie C
	//GPIOC-›CRH=0x44344444;  //    PC13 output
	
	DWT_CYCCNT = 0;
	
	while(1)
	{
		
		GPIO_SetBits(GPIOC,GPIO_Pin_13);
		//GPIOC-›BSRR|=GPIO_BSRR_BR13;
		while(!flag_count) ;
		flag_count=0;
		GPIO_ResetBits(GPIOC,GPIO_Pin_13);
		//GPIOC-›BSRR|=GPIO_BSRR_BS13;
		//for(i=0; i‹4000000;i++){}
		while(!flag_count) ;
		flag_count=0;
	}
	
}
Миниатюры:
Нажмите на изображение для увеличения
Название: 2017-02-23_23-10-20.png
Просмотров: 0
Размер:	30.3 Кб
ID:	110762  
Реклама:
__________________
Глаза боятся,а руки делают.

Последний раз редактировалось CERGEI1982; 23.02.2017 в 19:17.
CERGEI1982 вне форума  
Непрочитано 23.02.2017, 19:28  
CERGEI1982
Почётный гражданин KAZUS.RU
 
Аватар для CERGEI1982
 
Регистрация: 03.01.2007
Адрес: Россия,Иркутская обл.
Сообщений: 2,579
Сказал спасибо: 351
Сказали Спасибо 315 раз(а) в 193 сообщении(ях)
CERGEI1982 на пути к лучшему
По умолчанию Re: Keil uVision5 отладка

Играя с делителем для SysTick
Миниатюры:
Нажмите на изображение для увеличения
Название: 2017-02-23_23-26-52.png
Просмотров: 0
Размер:	27.6 Кб
ID:	110763   Нажмите на изображение для увеличения
Название: 2017-02-23_23-27-41.png
Просмотров: 0
Размер:	21.2 Кб
ID:	110764  
__________________
Глаза боятся,а руки делают.
CERGEI1982 вне форума  
Непрочитано 23.02.2017, 19:46  
NewWriter
Заблокирован
 
Регистрация: 07.09.2014
Адрес: В Кремле!
Сообщений: 4,486
Сказал спасибо: 396
Сказали Спасибо 2,220 раз(а) в 1,319 сообщении(ях)
NewWriter на пути к лучшему
По умолчанию Re: Keil uVision5 отладка

Когда что-то настраивается через SystemCoreClock/1000, надо вначале убедиться, что значение SystemCoreClock действительно равно частоте. Проверить это можно, найдя строчку uint32_t SystemCoreClock = .... ;. Либо, если в процессе работы мы меняем частоту (такое запросто может быть - управление энергосбережением), после смены частоты нужно запустить функцию SystemCoreClockUpdate(), в результате будет обновлено значение SystemCoreClock , и после этого перенастраиваются таймеры, у которых следует сохранять неизменную частоту счета.

Отследить текущее значение сисьтик-счетчика, глядя на регистры - нереально, он слишком быстро считает.
Лучше написать простейшую прогу типа
Код:
//---------------------------------
static volatile uint32_t TimingDelay;
void Delay_ms(uint32_t nTime)
{   // задержка на SysTicks
	TimingDelay = nTime;
	while (TimingDelay);
}
//---------------------------------
int main(void)
{
  int  errorstate;
  SystemCoreClockUpdate();	     // Запрос системной частоты
							
  errorstate = SysTick_Config(SystemCoreClock/1000);
  if (errorstate) { /* неправильно задан делитель */ }

  RCC-›AHB1ENR |= RCC_AHB1ENR_GPIOIEN ;
  GPIOI-›MODER |= GPIO_MODER_MODER1_0;

  while (1)
  {
	LED_ON;
	Delay_ms(500);
	LED_OFF;
	Delay_ms(500);
  } 
} 

/*-------------------------
 * Задержка на основе системного таймера
 */
void SysTick_Handler(void)
{
	if (TimingDelay)
	{
		TimingDelay--;		// декремент задержки
	}
}

Последний раз редактировалось NewWriter; 23.02.2017 в 19:54.
NewWriter вне форума  
Непрочитано 23.02.2017, 20:39  
STM32F0
Заблокирован
 
Регистрация: 22.04.2014
Сообщений: 0
Сказал спасибо: 15
Сказали Спасибо 366 раз(а) в 284 сообщении(ях)
STM32F0 на пути к лучшему
По умолчанию Re: Keil uVision5 отладка

Сообщение от CERGEI1982 Посмотреть сообщение
Странновато считает DWT,не сходится с SysTick.
Он не может странновато считать. Это счётчик циклов МК.
STM32F0 вне форума  
Непрочитано 23.02.2017, 21:38  
krug_vv
Вид на жительство
 
Регистрация: 09.12.2009
Адрес: Россия, Тула
Сообщений: 377
Сказал спасибо: 192
Сказали Спасибо 156 раз(а) в 99 сообщении(ях)
krug_vv на пути к лучшему
По умолчанию Re: Keil uVision5 отладка

Сообщение от CERGEI1982 Посмотреть сообщение
Да и где посмотреть время между двумя Breakpoint ?
В осциллографе. Ногу в систике тогглим - и смотрим частоту.
krug_vv вне форума  
Непрочитано 24.02.2017, 05:09  
CERGEI1982
Почётный гражданин KAZUS.RU
 
Аватар для CERGEI1982
 
Регистрация: 03.01.2007
Адрес: Россия,Иркутская обл.
Сообщений: 2,579
Сказал спасибо: 351
Сказали Спасибо 315 раз(а) в 193 сообщении(ях)
CERGEI1982 на пути к лучшему
По умолчанию Re: Keil uVision5 отладка

Сообщение от krug_vv Посмотреть сообщение
В осциллографе. Ногу в систике тогглим - и смотрим частоту.
Попробовал,сходится все.
__________________
Глаза боятся,а руки делают.
CERGEI1982 вне форума  
Непрочитано 24.02.2017, 05:13  
CERGEI1982
Почётный гражданин KAZUS.RU
 
Аватар для CERGEI1982
 
Регистрация: 03.01.2007
Адрес: Россия,Иркутская обл.
Сообщений: 2,579
Сказал спасибо: 351
Сказали Спасибо 315 раз(а) в 193 сообщении(ях)
CERGEI1982 на пути к лучшему
По умолчанию Re: Keil uVision5 отладка

Сообщение от NewWriter Посмотреть сообщение
Когда что-то настраивается через SystemCoreClock/1000, надо вначале убедиться, что значение SystemCoreClock действительно равно частоте. Проверить это можно, найдя строчку uint32_t SystemCoreClock = .... ;. Либо, если в процессе работы мы меняем частоту (такое запросто может быть - управление энергосбережением), после смены частоты нужно запустить функцию SystemCoreClockUpdate(), в результате будет обновлено значение SystemCoreClock , и после этого перенастраиваются таймеры, у которых следует сохранять неизменную частоту счета.
А как в кейле запустить логический анализатор для вывода или переменной? Нужен вывод SWO на отладчике ?
Программатор и отладчик у меня ST-LINK V2 с китая мини этот.
https://ru.aliexpress.com/item/ST-Li...b-e463f186bd0a

Код очень похож у вас на уроки в youtubehttps://www.youtube.com/watch?v=I92A...d37aVv0ic24jqV
Миниатюры:
Нажмите на изображение для увеличения
Название: 2017-02-24_09-04-16.png
Просмотров: 0
Размер:	29.8 Кб
ID:	110798   Нажмите на изображение для увеличения
Название: 2017-02-24_09-04-54.png
Просмотров: 0
Размер:	55.8 Кб
ID:	110799   Нажмите на изображение для увеличения
Название: 2017-02-24_09-08-31.png
Просмотров: 0
Размер:	109.7 Кб
ID:	110800  

__________________
Глаза боятся,а руки делают.

Последний раз редактировалось CERGEI1982; 24.02.2017 в 05:24.
CERGEI1982 вне форума  
Непрочитано 25.02.2017, 18:20  
CERGEI1982
Почётный гражданин KAZUS.RU
 
Аватар для CERGEI1982
 
Регистрация: 03.01.2007
Адрес: Россия,Иркутская обл.
Сообщений: 2,579
Сказал спасибо: 351
Сказали Спасибо 315 раз(а) в 193 сообщении(ях)
CERGEI1982 на пути к лучшему
По умолчанию Re: Keil uVision5 отладка

Вот еще как можно посмотреть какие тактовые частоты на шинах.
Миниатюры:
Нажмите на изображение для увеличения
Название: 2017-02-25_21-53-15.png
Просмотров: 0
Размер:	46.2 Кб
ID:	110896  
__________________
Глаза боятся,а руки делают.
CERGEI1982 вне форума  
Непрочитано 26.02.2017, 00:40  
anakost
Временная регистрация
 
Регистрация: 15.05.2010
Адрес: г. Липецк
Сообщений: 88
Сказал спасибо: 8
Сказали Спасибо 16 раз(а) в 10 сообщении(ях)
anakost на пути к лучшему
По умолчанию Re: Keil uVision5 отладка

Сообщение от CERGEI1982 Посмотреть сообщение
...Да и где посмотреть время между двумя Breakpoint ?
Как посмотреть время между двумя вызовами в Кейл? Нужно использовать возможности встроенного скриптового отладчика. Коротко тут.
Функция отладчика примерно такая:
Цитата:
FUNC void Counter (void) {
unsigned long int val;
val = states;
printf("States (dec) = %lu\n", val);
}
Она выводит в окно отладчика кол-во выполненных команд (тактов?) на момент вызова.

Последний раз редактировалось anakost; 26.02.2017 в 00:45.
anakost вне форума  
Непрочитано 07.03.2017, 12:35  
CERGEI1982
Почётный гражданин KAZUS.RU
 
Аватар для CERGEI1982
 
Регистрация: 03.01.2007
Адрес: Россия,Иркутская обл.
Сообщений: 2,579
Сказал спасибо: 351
Сказали Спасибо 315 раз(а) в 193 сообщении(ях)
CERGEI1982 на пути к лучшему
По умолчанию Re: Keil uVision5 отладка

Сообщение от anakost Посмотреть сообщение
Как посмотреть время между двумя вызовами в Кейл? Нужно использовать возможности встроенного скриптового отладчика. Коротко тут.
Функция отладчика примерно такая:

Она выводит в окно отладчика кол-во выполненных команд (тактов?) на момент вызова.
Подключить не получается.
А вот время t0,t1,t2 снизу в углу почти что обозначает?
Миниатюры:
Нажмите на изображение для увеличения
Название: 2017-03-07_16-33-06.png
Просмотров: 0
Размер:	101.7 Кб
ID:	111385   Нажмите на изображение для увеличения
Название: 2017-03-07_16-24-21.png
Просмотров: 0
Размер:	15.0 Кб
ID:	111386  
__________________
Глаза боятся,а руки делают.
CERGEI1982 вне форума  
 

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

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

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

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

Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
KEIL - отладка - пусто в peripherials nml ARM 21 26.11.2018 08:14
Keil и сторонние программаторы Qares Embedd С 17 06.02.2013 19:40
Class string in Keil Chudilo Микроконтроллеры, АЦП, память и т.д 18 13.08.2012 13:10
ARM начинающим с нуля - KEIL с лекарсвом, методички, книги avr123-nm-ru Микроконтроллеры, АЦП, память и т.д 22 31.03.2010 00:24
Почему Keil собирает нерабочий hex west329 Микроконтроллеры, АЦП, память и т.д 1 10.07.2009 14:09


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


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