Attiny2313+DS1307+DS18B20
- Сообщения: 2198
- Зарегистрирован: Ср мар 14, 2007 01:50:10
Кто собирал часы на Attiny2313 расскажите, у кого какая точность хода?
- Реклама
Если специально пытаться, то большинством программаторов не отключить. Понькой точно. А про нее и речь. Если случайно - то случайно чего угодно может произойти.vitalik_1984 писал(а):неправда.последовательным можно отключить
А если в данном случае инверсно поставить фьюзы на внутренние 4 мГц, то получается как раз внешний кварц 3-8мГц.
Adusik Точность хода зависит в основном от примененного кварца.
- Сообщения: 2198
- Зарегистрирован: Ср мар 14, 2007 01:50:10
Ну кварц я понял в схеме один, на 32768? Или ещё на МК надо вешать какой нить?
На тиньку вешать на 4,5 ноги или в программаторе должен быть, или внешнее тактирование подавать.
- Сообщения: 2198
- Зарегистрирован: Ср мар 14, 2007 01:50:10
Вы немого меня не поняли, как залить прошивку я понимаю, в готовом устройстве на МК должен быть кварц или нет? И кде взять схему полную с ОА и фотками фузов в коне или CVavr? В протеусе то всё красиво работает. И ещё хочу прояснить по этому месту:
static flash unsigned char digits[] = {
0xD7, // 0
0x14, // 1
0xCD, // 2
0x5D, // 3
0x1E, // 4
0x5B, // 5
0xDB, // 6
0x15, // 7
0xDF, // 8
0x5F, // 9
0x08, // 10 - знак минус
0x0F, // 11 - символ градус цельсия
0x00, // 12 - пусто
0x8B, // 13 - F
0x98, // 14 - n
0xFC, // 15 - d.
0xCB, // 16 - E
0x88, // 17 - r
0xA8 // 18 - r.
};
Например цифра 7 это 0x15 hex переводим в бинарное получаем 00010101 интересует где здесь abcdefgh?
static flash unsigned char digits[] = {
0xD7, // 0
0x14, // 1
0xCD, // 2
0x5D, // 3
0x1E, // 4
0x5B, // 5
0xDB, // 6
0x15, // 7
0xDF, // 8
0x5F, // 9
0x08, // 10 - знак минус
0x0F, // 11 - символ градус цельсия
0x00, // 12 - пусто
0x8B, // 13 - F
0x98, // 14 - n
0xFC, // 15 - d.
0xCB, // 16 - E
0x88, // 17 - r
0xA8 // 18 - r.
};
Например цифра 7 это 0x15 hex переводим в бинарное получаем 00010101 интересует где здесь abcdefgh?
- Реклама
Это по порядку, но можно как захотите (в пределах порта) подключить могу кинуть пример если интересно.
Подглядел у какого то чувака.Очень удобно изменять для удобства разводки и подключения различных ОА или ОК индикаторов.
Подглядел у какого то чувака.Очень удобно изменять для удобства разводки и подключения различных ОА или ОК индикаторов.
В поисках истины человек развивается.
- Сообщения: 2198
- Зарегистрирован: Ср мар 14, 2007 01:50:10
Если было по порядку то 7ка выглядела бы 00000111 по моему, вроде как.
Adusik Кварц не нужен тине в часах, фьюзы вот только что считанные. Схема многократно мелькала, там резисторы в сегменты нужно и, возможно повторители в аноды индикатора, если он не яркий.
- Сообщения: 2198
- Зарегистрирован: Ср мар 14, 2007 01:50:10
У меня яркий индикатор, думаю обойтись без резисторов и ключей, за скрин фузов спасибо!
- Сообщения: 415
- Зарегистрирован: Пн фев 02, 2009 15:00:33
Adusik Без резисторов не нужно обходиться, это совсем не лишние элементы, ни для тиньки, ни для индикатора!!! Особенно если смд, то и места много не займут.

А у меня за 3 месяца лежания без питания , но с батарейкой никуда не убежали, и не отсталиkret_a_v писал(а):за неделю - 2 минуты
- Сообщения: 2198
- Зарегистрирован: Ср мар 14, 2007 01:50:10
Эззззз, так непойдёт, у меня на стене висят 6 лет уже на 16F628A точность 30 сек в год. Только там функция есть нехорошая, переход на зимнее / летнее время, вот и хочу себе без этой фишки.
Главное в часах точность хода, а все остальные прибабахи типа термометр и всё остальное вторично.
Главное в часах точность хода, а все остальные прибабахи типа термометр и всё остальное вторично.
Последний раз редактировалось Adusik Пн май 21, 2012 21:25:53, всего редактировалось 2 раза.
Ну не знаю, это от кварца зависит, у меня именно в этих часах с матери комповой кварц, и все четко идет.
- Вложения
-
- Фото-0424.jpg
- Часы для встраивания в устройство, поэтому деталей больше, чем на схеме и плата под габарит передней панели этого устройства.
- (167.24 КБ) 960 скачиваний
-
- Фото-0398.jpg
- (172.71 КБ) 800 скачиваний
- Сообщения: 2198
- Зарегистрирован: Ср мар 14, 2007 01:50:10
Можно там же, наверно и часы реального времени тюзнуть.
Вот определение для разных ног на индикаторы.
если нужно обратной полярности(это для ОК) для ОА то можно из 255 отнять эти константы или перед ними написать "!" то есть инверсию
Вот определение для разных ног на индикаторы.
Спойлер
Код: Выделить всё
#define _BV(x) (1<<(x))
#define LED_PORT_SEG PORTB //Порт сегментов
//Определение привязки к ногам контроллера
#define Seg_A 0
#define Seg_B 1
#define Seg_C 2
#define Seg_D 3
#define Seg_E 4
#define Seg_F 5
#define Seg_G 6
#define Seg_DP 7
//Определение констант цифр
#define N0 (_BV(Seg_A)+_BV(Seg_B)+_BV(Seg_C)+_BV(Seg_D)+_BV(Seg_E)+_BV(Seg_F))
#define N1 (_BV(Seg_B)+_BV(Seg_C))
#define N2 (_BV(Seg_A)+_BV(Seg_B)+_BV(Seg_G)+_BV(Seg_E)+_BV(Seg_D))
#define N3 (_BV(Seg_A)+_BV(Seg_B)+_BV(Seg_C)+_BV(Seg_G)+_BV(Seg_D))
#define N4 (_BV(Seg_B)+_BV(Seg_C)+_BV(Seg_F)+_BV(Seg_G))
#define N5 (_BV(Seg_A)+_BV(Seg_C)+_BV(Seg_D)+_BV(Seg_F)+_BV(Seg_G))
#define N6 (_BV(Seg_A)+_BV(Seg_C)+_BV(Seg_D)+_BV(Seg_E)+_BV(Seg_F)+_BV(Seg_G))
#define N7 (_BV(Seg_A)+_BV(Seg_B)+_BV(Seg_C))
#define N8 (_BV(Seg_A)+_BV(Seg_B)+_BV(Seg_C)+_BV(Seg_D)+_BV(Seg_E)+_BV(Seg_F)+_BV(Seg_G))
#define N9 (_BV(Seg_A)+_BV(Seg_B)+_BV(Seg_C)+_BV(Seg_D)+_BV(Seg_F)+_BV(Seg_G))
#define E (_BV(Seg_A)+_BV(Seg_D)+_BV(Seg_E)+_BV(Seg_F)+_BV(Seg_G))
#define r (_BV(Seg_E)+_BV(Seg_G))
static flash unsigned char digits[] = {
N0, // 0
N1, // 1
N2, // 2
N3, // 3
N4, // 4
N5, // 5
N6, // 6
N7, // 7
N8, // 8
N9, // 9
_BV(SEG_H), // 10 - знак минус
0xff, // 11 - символ градус цельсия(тут не заполнял)
0x00, // 12 - пусто
0xff, // 13 - F (тут не заполнял)
0xff, // 14 - n (тут не заполнял)
0xff, // 15 - d. (тут не заполнял)
E, // 16 - E
R, // 17 - r
R|(_BV(SEG_DP) // 18 - r.
};
В поисках истины человек развивается.
- Сообщения: 2198
- Зарегистрирован: Ср мар 14, 2007 01:50:10
#define Seg_A 0 // PB0
#define Seg_B 1 // PB1
#define Seg_C 2 // PB2
#define Seg_D 3 // PB3
#define Seg_E 4 // PB4
#define Seg_F 5 // PB5
#define Seg_G 6 // PB6
#define Seg_DP 7 // PB7
я правильно понял?
#define Seg_B 1 // PB1
#define Seg_C 2 // PB2
#define Seg_D 3 // PB3
#define Seg_E 4 // PB4
#define Seg_F 5 // PB5
#define Seg_G 6 // PB6
#define Seg_DP 7 // PB7
я правильно понял?
правильно, только порядок бит может быть такой как вам удобно на плате разместить.
и соответственно порт можно любой из удобных.
если на несколько портов раскидывать то будет много лишних операций умножения и т.п. в интерактиве. А так все на этапе сборки считается и ок
и соответственно порт можно любой из удобных.
если на несколько портов раскидывать то будет много лишних операций умножения и т.п. в интерактиве. А так все на этапе сборки считается и ок
В поисках истины человек развивается.
- Сообщения: 2198
- Зарегистрирован: Ср мар 14, 2007 01:50:10
vitalik_1984: пробовал ваш кусок в компиль вставлять, при компиляции ошибку выдаёт, и можно примерчик куда "!" вставлять для инверсии? Вобще то вещь удобная для разводки под разные индикаторы, разобраться бы. И ещё, если мы инвертируем выходы на сегменты, то и аноды/катоды необходимо инвертировать тоже соответственно. Я в АВРах практически "0", но хочется хоть немного разобраться.
какую ошибку то?Adusik писал(а):vitalik_1984: пробовал ваш кусок в компиль вставлять, при компиляции ошибку выдаёт,
Adusik писал(а):и можно примерчик куда "!" вставлять для инверсии?
Код: Выделить всё
static flash unsigned char digits[] = {
!N0, // 0
!N1, // 1
!N2, // 2
!N3, // 3
//и так далее.
ну это понятно.Adusik писал(а): И ещё, если мы инвертируем выходы на сегменты, то и аноды/катоды необходимо инвертировать тоже соответственно.
с общими точками тоже можно так же сделать как и с сегментами-использовать для них любые удобные ноги одного порта.
В поисках истины человек развивается.
- Сообщения: 2198
- Зарегистрирован: Ср мар 14, 2007 01:50:10


