Технический форум
Вернуться   Технический форум > Электроника, самоделки и техника > Форум по электронике > Микропроцессоры


Ответ
 
Опции темы Опции просмотра
Старый 16.06.2012, 23:21   #31 (permalink)
Ильмир
МАГистр
 
Аватар для Ильмир
 
Регистрация: 11.07.2010
Сообщений: 2,196
Записей в дневнике: 9
Сказал(а) спасибо: 0
Поблагодарили 10 раз(а) в 2 сообщениях
Репутация: 2976
По умолчанию

Что за индикаторы такие интересные?
Ильмир вне форума   Ответить с цитированием
Старый 17.06.2012, 11:33   #32 (permalink)
News
Собираю Саб
 
Аватар для News
 
Регистрация: 12.04.2011
Сообщений: 1,611
Записей в дневнике: 1
Сказал(а) спасибо: 0
Поблагодарили 0 раз(а) в 0 сообщениях
Репутация: 524
По умолчанию

Цитата:
Сообщение от Ильмир Посмотреть сообщение
Что за индикаторы такие интересные?
Да хрен его знает
Но вид очень понравился и цена не высока 120Р.
News вне форума   Ответить с цитированием
Старый 17.06.2012, 14:39   #33 (permalink)
News
Собираю Саб
 
Аватар для News
 
Регистрация: 12.04.2011
Сообщений: 1,611
Записей в дневнике: 1
Сказал(а) спасибо: 0
Поблагодарили 0 раз(а) в 0 сообщениях
Репутация: 524
По умолчанию

Оказываеися если иницыализировать ножки как выходы
Цитата:
DDRA=0xFF;
Они автоматически приобретают значения 1. Из-за этого ничего видимо и неработало...
News вне форума   Ответить с цитированием
Старый 17.06.2012, 15:57   #34 (permalink)
News
Собираю Саб
 
Аватар для News
 
Регистрация: 12.04.2011
Сообщений: 1,611
Записей в дневнике: 1
Сказал(а) спасибо: 0
Поблагодарили 0 раз(а) в 0 сообщениях
Репутация: 524
По умолчанию

Я наверно лучьше на tiny13A побалуюсь (Как никак всего 30Р стоит)
А потом как подучюсь на мегу перейду.
News вне форума   Ответить с цитированием
Старый 17.06.2012, 16:13   #35 (permalink)
News
Собираю Саб
 
Аватар для News
 
Регистрация: 12.04.2011
Сообщений: 1,611
Записей в дневнике: 1
Сказал(а) спасибо: 0
Поблагодарили 0 раз(а) в 0 сообщениях
Репутация: 524
По умолчанию

Посмотрел датащит на тиньку 13.
В Register Summary хотел посмотреть регистр TIFR0
Написано мол смотри на странице 75.
Вот тут и был ступор.... Датащит ссылается на несуществующие страницы (В нем их 22)
Так где мне прочитать о этом регистре?
На ОФФ сайте ДШ так-же срезан...
News вне форума   Ответить с цитированием
Ads

Яндекс

Member
 
Регистрация: 31.10.2006
Сообщений: 40200
Записей в дневнике: 0
Сказал(а) спасибо: 0
Поблагодарили 0 раз(а) в 0 сообщениях
Репутация: 55070
Старый 17.06.2012, 20:05   #36 (permalink)
Ильмир
МАГистр
 
Аватар для Ильмир
 
Регистрация: 11.07.2010
Сообщений: 2,196
Записей в дневнике: 9
Сказал(а) спасибо: 0
Поблагодарили 10 раз(а) в 2 сообщениях
Репутация: 2976
По умолчанию

Может в другом месте надо смотреть?
Ильмир вне форума   Ответить с цитированием
Старый 17.06.2012, 20:45   #37 (permalink)
News
Собираю Саб
 
Аватар для News
 
Регистрация: 12.04.2011
Сообщений: 1,611
Записей в дневнике: 1
Сказал(а) спасибо: 0
Поблагодарили 0 раз(а) в 0 сообщениях
Репутация: 524
По умолчанию

Мдаааа. Проблема.

Последний раз редактировалось News; 17.06.2012 в 20:55
News вне форума   Ответить с цитированием
Старый 18.06.2012, 23:16   #38 (permalink)
Ильмир
МАГистр
 
Аватар для Ильмир
 
Регистрация: 11.07.2010
Сообщений: 2,196
Записей в дневнике: 9
Сказал(а) спасибо: 0
Поблагодарили 10 раз(а) в 2 сообщениях
Репутация: 2976
По умолчанию

ты не то скачал)))
ты скачал файл ATTiny13 Summary, а надо было полный даташит, там 176 страниц, гугл сразу находит то что нужно)))
вот читай))
http://www.atmel.com/Images/doc2535.pdf
Ильмир вне форума   Ответить с цитированием
Старый 19.06.2012, 15:44   #39 (permalink)
News
Собираю Саб
 
Аватар для News
 
Регистрация: 12.04.2011
Сообщений: 1,611
Записей в дневнике: 1
Сказал(а) спасибо: 0
Поблагодарили 0 раз(а) в 0 сообщениях
Репутация: 524
По умолчанию

Цитата:
#include <mega16.h>
//Объявляем глобальные переменные. Переменную таймера, секундную, минутную и часовую переменную - соответственно.
char Timer;
char Second;
char Minute;
char Hour;

void main(void)
{
DDRA=0xFF;
PORTA.0=1;

while(1)
{
//Запускаем таймер с коэф. делени 1024. При кварце в 16Мгц он будет переполнятся 61Раз (Таймер на 8 Бит).
TCCR0 = 0b00000101;
//Когда таймер переполнится, будет установлен 0 бит регистра TIFR и цыкл будет покинут.
while (!(TIFR&0x01));
//Так как таймер переполнился, прибавим к переменной Timer - 1.
Timer++;
//И обнулим бит переполнения таймера путем перезаписи.
TIFR |=1<<0;
//Когда в переменной Timer будет значение 61, прибавим к переменной Second 1 (В секунду таймер переполняется 61 раз!).
//И обнулим переменную Timer для дальнейшей работы.
if (Timer==61) {Second++; Timer=0; !PORTA.0;};
//При достижении переменной Second 60 Секунд, к переменной Minute будет приплюсовываться 1.
//Переменная Second - очистица.
if (Second==60) {Minute++; Second=0;};
//При достижении переменной Minute 60 Минут, к переменной Hour будет приплюсовываться 1.
//Переменная Minute - очистица.
if (Minute==60) {Hour++; Minute=0;};
//Переменная Hour обнуляется по достижению 24 Часов.
if (Hour==24) {Hour=0;};
};
}
Программа практически доделана.
(Покрайнемере светодиод мигает каждую секунду)
Осталось прочитать датащит на индикатор и вывести сигнал на соответствующие ноги.
Ну и подправить !PORTA.0;

Последний раз редактировалось News; 19.06.2012 в 15:51
News вне форума   Ответить с цитированием
Старый 19.06.2012, 16:11   #40 (permalink)
News
Собираю Саб
 
Аватар для News
 
Регистрация: 12.04.2011
Сообщений: 1,611
Записей в дневнике: 1
Сказал(а) спасибо: 0
Поблагодарили 0 раз(а) в 0 сообщениях
Репутация: 524
По умолчанию

Работает!
Осталось индикатор прикрепить.
Цитата:
#include <mega16.h>
//Объявляем глобальные переменные. Переменную таймера, секундную, минутную и часовую переменную - соответственно.
char Timer;
char Second;
char Minute;
char Hour;
//Переменая управления Сеундным Светодиодом.
char SecLed;

void main(void)
{
DDRA=0xFF;

while(1)
{
//Запускаем таймер с коэф. делени 1024. При кварце в 16Мгц он будет переполнятся 61Раз (Таймер на 8 Бит).
TCCR0 = 0b00000101;
//Когда таймер переполнится, будет установлен 0 бит регистра TIFR и цыкл будет покинут.
while (!(TIFR&0x01));
//Так как таймер переполнился, прибавим к переменной Timer - 1.
Timer++;
//И обнулим бит переполнения таймера путем перезаписи.
TIFR |=1<<0;
//Когда в переменной Timer будет значение 61, прибавим к переменной Second 1 (В секунду таймер переполняется 61 раз!).
//И обнулим переменную Timer для дальнейшей работы.
if (Timer==61) {Second++; Timer=0; PORTA.0=1;};
//При достижении переменной Second 60 Секунд, к переменной Minute будет приплюсовываться 1.
//Переменная Second - очистица.
if (Second==60) {Minute++; Second=0;};
//При достижении переменной Minute 60 Минут, к переменной Hour будет приплюсовываться 1.
//Переменная Minute - очистица.
if (Minute==60) {Hour++; Minute=0;};
//Переменная Hour обнуляется по достижению 24 Часов.
if (Hour==24) {Hour=0;};
if (Timer==0){SecLed++;};
if (SecLed==2){PORTA.0=0; SecLed=0;};
};
}
News вне форума   Ответить с цитированием
Ads

Яндекс

Member
 
Регистрация: 31.10.2006
Сообщений: 40200
Записей в дневнике: 0
Сказал(а) спасибо: 0
Поблагодарили 0 раз(а) в 0 сообщениях
Репутация: 55070
Ответ


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

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




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

Powered by vBulletin® Version 6.2.5.
Copyright ©2000 - 2014, Jelsoft Enterprises Ltd.