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

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

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

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

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

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


Ответ
Опции темы
Непрочитано 10.10.2011, 16:43   #901
ut1wpr
Почётный гражданин KAZUS.RU
 
Аватар для ut1wpr
 
Регистрация: 19.08.2006
Адрес: Львов
Сообщений: 1,616
Сказал спасибо: 65
Сказали Спасибо 315 раз(а) в 264 сообщении(ях)
ut1wpr на пути к лучшему
По умолчанию Re: Изучаем STM32 Cortex M3

Сообщение от st_1 Посмотреть сообщение
either on VDD supply when present or through the VBAT pin
А если нет ни того ни другого? Ионистор вешать?
Реклама:
ut1wpr вне форума   Ответить с цитированием
Непрочитано 11.10.2011, 17:31   #902
Oleg Galizin
Частый гость
 
Регистрация: 25.03.2010
Адрес: Voronezh
Сообщений: 35
Сказал спасибо: 0
Сказали Спасибо 7 раз(а) в 7 сообщении(ях)
Oleg Galizin на пути к лучшему
По умолчанию Re: Изучаем STM32 Cortex M3

Сообщение от ut1wpr Посмотреть сообщение
А если нет ни того ни другого? Ионистор вешать?
У ST есть AN по применению флеша в качестве EEPROM. Идея там следующая. Выделяется 2 или более сегментов флеша. По мере изменения в конец сегмента добавляются изменившиеся данные. Последние данные считаются достоверными. Свободное место заполнено -1.
Так что если нужно сохранять только 100 байт, то целиком страницы будут перезаписываться в 20 раз реже (2 страницы по килобайту разделить на 100).
Две страницы обеспечивают гарантию сохранности данных при переписывании из одной страницы в другую.
Если выделите 2 страницы флеша под 256 байт информации, считайте что у вас EEPROM с 100000 циклов перезаписи размером 256 байт.
Oleg Galizin вне форума   Ответить с цитированием
Непрочитано 11.10.2011, 17:35   #903
qwerky
Вид на жительство
 
Регистрация: 21.11.2009
Сообщений: 342
Сказал спасибо: 4
Сказали Спасибо 149 раз(а) в 66 сообщении(ях)
qwerky на пути к лучшему
По умолчанию Re: Изучаем STM32 Cortex M3

Цитата:
10000 циклов? Я в шоке, т.е. о сохранении настроек по выкл видимо придется забыть.
бред. у каждого производителя есть кучи аппнотов на тему "Reliable data storage", было бы желание что-то искать и самостоятельно делать, а не визжать на форуме
qwerky вне форума   Ответить с цитированием
Непрочитано 11.10.2011, 17:45   #904
Easyrider83
Гуру портала
 
Аватар для Easyrider83
 
Регистрация: 27.10.2008
Адрес: ЕС
Сообщений: 10,835
Сказал спасибо: 919
Сказали Спасибо 4,308 раз(а) в 2,573 сообщении(ях)
Easyrider83 на пути к лучшему
По умолчанию Re: Изучаем STM32 Cortex M3

Подскажите, почему прерывание либо вообще не начинает работать, либо чуть поработав, перестает вызываться? Дебаггером этот момент выложить не получается.
К порту В линиям 0 и 1 подключен энкодер. Выводы настроены Pull Up, прерывание по первой линии. По второй смотрим направление вращения. На дисплее видим результат. Ничего, короче говоря, не работает. Хотя прерывание вроде бы отрабатывается, но потом почему-то перестает вызываться. Хотя иногда не вызывается прямо с самого начала. Не понятно мне это.
Код:
#include ‹stm32f10x_lib.h›
#include "delays.h"
#include "LCDv1.h"
#include "stm32_GPIO.h"

extern stm32_Init(void);
void led_flash(int LENn);

#define BLUE_LED 		GPIO_Pin_8
#define GREEN_LED 		GPIO_Pin_9

u8 cnt=0;
u8 flag=0;
u8 tmp=0;

int main(void)
{

	stm32_Init();
	GPIOB-›BSRR=GPIO_Pin_0|GPIO_Pin_1;
	LCD_init();
	LCD_Send_Cmd(LCD_CMD_Cursor_Off);
	lcd_print_string("HELLO");
	while(1)
	{
		led_flash(GREEN_LED);
		delay_ms(100);
		if (flag!=0)
		{
			flag=0;
		 	LCD_Send_Cmd(LCD_CMD_Clear);
			LCD_Send_Cmd(LCD_CMD_First_Row);
			tmp=cnt;
			while(tmp!=0)
			{
				lcd_print_char(0xFF);
				tmp--;
			}
			tmp=0;	
		}
	}
		
}

void EXTI0_IRQHandler (void)
{	
 	led_flash(BLUE_LED);
	if ((GPIOB-›IDR&GPIO_Pin_1)!=0){cnt++;flag=0xff;}else{cnt--;flag=0xff;}
	if (cnt›=20)cnt=0;
 	EXTI-›PR |= EXTI_Line0;
}
Предполагаю, что причина - дребезг. Но энкодер маслянный. Не должен так трещать.
Как выключить и затем включить прерывание?

Последний раз редактировалось Easyrider83; 11.10.2011 в 17:49.
Easyrider83 вне форума   Ответить с цитированием
Непрочитано 11.10.2011, 18:25   #905
Oleg Galizin
Частый гость
 
Регистрация: 25.03.2010
Адрес: Voronezh
Сообщений: 35
Сказал спасибо: 0
Сказали Спасибо 7 раз(а) в 7 сообщении(ях)
Oleg Galizin на пути к лучшему
По умолчанию Re: Изучаем STM32 Cortex M3

Сообщение от Easyrider83 Посмотреть сообщение
Подскажите, почему прерывание либо вообще не начинает работать, либо чуть поработав, перестает вызываться? Дебаггером этот момент выложить не получается.
Возможно было вызвано еще одно прерывание. Для него был вызван обработчик по умолчанию - бесконечный цикл. Посмотрите в каком месте ходит отладчик. Надо смотреть окно ассемблера. Если это не Ваш main - то причина в этом.
Oleg Galizin вне форума   Ответить с цитированием
Непрочитано 11.10.2011, 18:39   #906
st_1
Заблокирован
 
Регистрация: 26.12.2009
Сообщений: 3,124
Сказал спасибо: 116
Сказали Спасибо 867 раз(а) в 614 сообщении(ях)
st_1 на пути к лучшему
По умолчанию Re: Изучаем STM32 Cortex M3

Сообщение от Easyrider83 Посмотреть сообщение
Дебаггером этот момент выложить не получается.
А в Fault Reports заглянуть???
st_1 вне форума   Ответить с цитированием
Непрочитано 11.10.2011, 18:46   #907
Easyrider83
Гуру портала
 
Аватар для Easyrider83
 
Регистрация: 27.10.2008
Адрес: ЕС
Сообщений: 10,835
Сказал спасибо: 919
Сказали Спасибо 4,308 раз(а) в 2,573 сообщении(ях)
Easyrider83 на пути к лучшему
По умолчанию Re: Изучаем STM32 Cortex M3

Сообщение от Oleg Galizin Посмотреть сообщение
Возможно было вызвано еще одно прерывание. Для него был вызван обработчик по умолчанию - бесконечный цикл. Посмотрите в каком месте ходит отладчик. Надо смотреть окно ассемблера. Если это не Ваш main - то причина в этом.
Нет, этот вариант исключается. И вот почему - зеленый диодик продолжает моргать. Основной цикл выполняется.
Сообщение от st_1 Посмотреть сообщение
А в Fault Reports заглянуть???
Ниразу не пользовался. А чего там?
Отловать момент срабатывания энкодера не получается.
Easyrider83 вне форума   Ответить с цитированием
Непрочитано 11.10.2011, 18:55   #908
st_1
Заблокирован
 
Регистрация: 26.12.2009
Сообщений: 3,124
Сказал спасибо: 116
Сказали Спасибо 867 раз(а) в 614 сообщении(ях)
st_1 на пути к лучшему
По умолчанию Re: Изучаем STM32 Cortex M3

Вы с битами накосячили...

GPIOB-›BSRR=GPIO_Pin_0|GPIO_Pin_1;

if ((GPIOB-›IDR&GPIO_Pin_1)!=0){cnt++;flag=0xff;}else{cnt--;flag=0xff;}
st_1 вне форума   Ответить с цитированием
Непрочитано 11.10.2011, 19:39   #909
Easyrider83
Гуру портала
 
Аватар для Easyrider83
 
Регистрация: 27.10.2008
Адрес: ЕС
Сообщений: 10,835
Сказал спасибо: 919
Сказали Спасибо 4,308 раз(а) в 2,573 сообщении(ях)
Easyrider83 на пути к лучшему
По умолчанию Re: Изучаем STM32 Cortex M3

st_1, ничего не накосячил. Пины являются входами с верхней подтяжкой. Поэтому и пишу в них 1. А настроены они в stm32_init.
Easyrider83 вне форума   Ответить с цитированием
Непрочитано 11.10.2011, 19:52   #910
dadigor
Прописка
 
Аватар для dadigor
 
Регистрация: 10.09.2010
Сообщений: 113
Сказал спасибо: 31
Сказали Спасибо 27 раз(а) в 27 сообщении(ях)
dadigor на пути к лучшему
По умолчанию Re: Изучаем STM32 Cortex M3

а не пробовали в прерывании
led_flash(BLUE_LED);
закоментаривать, мож оно как-то мешает
dadigor вне форума   Ответить с цитированием
Ответ

Закладки


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

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, время: 23:22.


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