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

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

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

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

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

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


 
Опции темы
Непрочитано 01.02.2015, 02:52  
STM32F0
Заблокирован
 
Регистрация: 22.04.2014
Сообщений: 0
Сказал спасибо: 15
Сказали Спасибо 366 раз(а) в 284 сообщении(ях)
STM32F0 на пути к лучшему
По умолчанию Re: Подсветка дисплея на ATtiny13 (как сделать)

Сообщение от omercury Посмотреть сообщение
А что мешает сделать из него же System Tick ?
И что это даст? Типа круто? Те же яйца, только Фаберже.
(Дрожите, адэпты! Сейчас упомяну страшное слово, STM!)
Если делать типа по крутому (почти хадварно), берём полукопеечный STM8S003, один таймер тупо под PWM, на вход другого таймера тупо вешаем кнопку (подтяжку можно внутреннюю, фильтр антидребезга присутствует). По одному прерыванию рулим таймером PWM, по другому сваливаемся в слип. В майне инит и пустой цикл.
Реклама:
STM32F0 вне форума  
Непрочитано 01.02.2015, 03:49  
omercury
Почётный гражданин KAZUS.RU
 
Аватар для omercury
 
Регистрация: 25.05.2010
Адрес: г. Королёв
Сообщений: 8,497
Сказал спасибо: 30
Сказали Спасибо 3,072 раз(а) в 2,013 сообщении(ях)
omercury на пути к лучшему
По умолчанию Re: Подсветка дисплея на ATtiny13 (как сделать)

Сообщение от prosto_andriy Посмотреть сообщение
так и не понял
Выше по ссылке и алгоритм и даже код.

Сообщение от STM32F0 Посмотреть сообщение
И что это даст? Типа круто? Те же яйца, только Фаберже.
В данном случае, кроме равномерности опроса кнопки ничего не даст.
Но, научившись однажды, в дальнейшем вопрос как можно управлять несколькими времязависимыми процессами имея всего один таймер уже не возникнет.
omercury вне форума  
Непрочитано 12.02.2015, 20:05  
МВА
Гражданин KAZUS.RU
 
Регистрация: 15.08.2010
Адрес: Днепр
Сообщений: 842
Сказал спасибо: 74
Сказали Спасибо 199 раз(а) в 174 сообщении(ях)
МВА на пути к лучшему
По умолчанию Re: Подсветка дисплея на ATtiny13 (как сделать)

Всем доброго времени суток
На один таймер, можно навесить кучу счетчиков. Нужно просто задаться отрезками длительности, установить прерывание по переполнению на заданный отрезок (подогнать легко, если при выходе из прерывания записать какое-то число в TCNTn, чтобы отсчет начинался с него. И объявить переменные таймеров в оперативе, если не много, то можно использовать свободные регистры. И в прерывании прибавлять 1 во все счетчики таймеров. А где-то в программе обнуляем регистр нужного таймера и во время отсчета сравниваем с нужным значением. Вот и все.
МВА вне форума  
Сказали "Спасибо" МВА
prosto_andriy (12.02.2015)
Непрочитано 28.04.2015, 03:18  
Godzilla82
Почётный гражданин KAZUS.RU
 
Регистрация: 29.10.2006
Сообщений: 1,446
Сказал спасибо: 99
Сказали Спасибо 317 раз(а) в 233 сообщении(ях)
Godzilla82 на пути к лучшему
Сообщение Re: Подсветка дисплея на ATtiny13 (как сделать)

Хоть тема и давнишняя...

А можно вообще без таймеров и прерываний:

PHP код:

#include ‹io.h›
#include ‹delay.h›

#define             BUTTON  0b00000010

unsigned char       PWM[]   = {20,38,71,135,254};

unsigned char       b       0;
unsigned char       i       0;
unsigned int        t       0;

void main(void)
{

DDRB    0b00000001;
PORTB   0b00000010;

// Timer Period: 2,048 ms
// Mode: Fast PWM top=0xFF
// OC0A output: Non-Inverted PWM
TCCR0A  = (1‹‹COM0A1) | (1‹‹WGM01) | (1‹‹WGM00);
TCCR0B  = (1‹‹CS01) | (1‹‹CS00);
TCNT0   0x00;
OCR0A   0xFF;
OCR0B   0x00;
TIMSK0  0;
ACSR    = (1‹‹ACD);

begin:
if((
PINB BUTTON) == 0)    {
                            if(
== 0)  {
                                        
OCR0A PWM[i];
                                        
i++;
                                        if(
› 40;
                                        }
                            if(
== 19) {
                                        
OCR0A 0xFF;
                                        
0;
                                        }
                            if(
‹ 20)  b++;
                            
0;
                            }
else                        
0;
if(
› 9000)                {
                            
OCR0A 0xFF;
                            
0;
                            }
else                        
t++;
delay_ms(100);
goto 
begin;

Вернее, таймер используется только для генерации ШИМ.

Последний раз редактировалось Godzilla82; 28.04.2015 в 03:20.
Godzilla82 вне форума  
Непрочитано 28.04.2015, 10:37  
omercury
Почётный гражданин KAZUS.RU
 
Аватар для omercury
 
Регистрация: 25.05.2010
Адрес: г. Королёв
Сообщений: 8,497
Сказал спасибо: 30
Сказали Спасибо 3,072 раз(а) в 2,013 сообщении(ях)
omercury на пути к лучшему
По умолчанию Re: Подсветка дисплея на ATtiny13 (как сделать)

Сообщение от Godzilla82 Посмотреть сообщение
Хоть тема и давнишняя...

А можно вообще без таймеров и прерываний:
...

Вернее, таймер используется только для генерации ШИМ.
Можно, но если таймер всё равно используется, отчего бы его не использовать и для генерации интервалов.
omercury вне форума  
 

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

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

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

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

Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
FAQ (ЧаВО) по PROTEUS для начинающих и не только dosikus Proteus 221 07.03.2024 22:45
Ностальжи по школе... Ar-Gen-Tum Отвлекитесь, эмбеддеры! 141 27.02.2015 16:10
Как остановить мк? Как сделать паузу? skllks Микроконтроллеры, АЦП, память и т.д 8 27.12.2008 17:27
[Решено] Сборник перлов любителей кабельщины mikesmith Отвлекитесь, эмбеддеры! 135 14.08.2007 15:49


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


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