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

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

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

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

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

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


 
Опции темы

Подсветка дисплея на ATtiny13 (как сделать)

Непрочитано 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.RUN
 
Аватар для omercury
 
Регистрация: 25.05.2010
Адрес: г. Королёв
Сообщений: 8,487
Сказал спасибо: 30
Сказали Спасибо 3,070 раз(а) в 2,011 сообщении(ях)
omercury на пути к лучшему
По умолчанию Re: Подсветка дисплея на ATtiny13 (как сделать)

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

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

Всем доброго времени суток
На один таймер, можно навесить кучу счетчиков. Нужно просто задаться отрезками длительности, установить прерывание по переполнению на заданный отрезок (подогнать легко, если при выходе из прерывания записать какое-то число в TCNTn, чтобы отсчет начинался с него. И объявить переменные таймеров в оперативе, если не много, то можно использовать свободные регистры. И в прерывании прибавлять 1 во все счетчики таймеров. А где-то в программе обнуляем регистр нужного таймера и во время отсчета сравниваем с нужным значением. Вот и все.
МВА вне форума  
Сказали "Спасибо" МВА
prosto_andriy (12.02.2015)
Непрочитано 28.04.2015, 03:18  
Godzilla82
Почётный гражданин KAZUS.RUN
 
Регистрация: 29.10.2006
Сообщений: 1,449
Сказал спасибо: 99
Сказали Спасибо 318 раз(а) в 234 сообщении(ях)
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(b == 0)  {
                                        OCR0A = PWM[i];
                                        i++;
                                        if(i › 4) i = 0;
                                        }
                            if(b == 19) {
                                        OCR0A = 0xFF;
                                        i = 0;
                                        }
                            if(b ‹ 20)  b++;
                            t = 0;
                            }
else                        b = 0;
if(t › 9000)                {
                            OCR0A = 0xFF;
                            i = 0;
                            }
else                        t++;
delay_ms(100);
goto begin;
} 
Вернее, таймер используется только для генерации ШИМ.

Последний раз редактировалось Godzilla82; 28.04.2015 в 03:20.
Godzilla82 вне форума  
Непрочитано 28.04.2015, 10:37  
omercury
Почётный гражданин KAZUS.RUN
 
Аватар для omercury
 
Регистрация: 25.05.2010
Адрес: г. Королёв
Сообщений: 8,487
Сказал спасибо: 30
Сказали Спасибо 3,070 раз(а) в 2,011 сообщении(ях)
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, время: 16:45.


Powered by vBulletin® Version 3.8.4
Copyright ©2000 - 2026, Jelsoft Enterprises Ltd.