Страница 1 из 2

Часы на микроконтроллере ATTINY2313

Добавлено: Вт дек 30, 2008 17:05:47
drakoshaprog
помогите разобраться

Добавлено: Вт дек 30, 2008 17:07:23
drakoshaprog
Как написать программу )) для часов на микроконтролере ATTINY2313
и как подключить правильно STK500 для его прошивки ?

Добавлено: Сб янв 10, 2009 20:18:18
Ivanchik
1 reset
19 sck
18 miso
17 mosi

Добавлено: Вс янв 11, 2009 00:26:46
sheva_s
Да правильно только при этом еще нужно подавать питание на микроконтроллер.

Добавлено: Ср янв 21, 2009 19:35:42
drakoshaprog
Подскажите где я ошибся
я написал программу

----------

Код: Выделить всё

.include "2313def.inc"

.def     TempB=R16
.def     TempD=R17

.cseg
.org 0

LOP:
ldi TempB,0b00000000  
out DDRB,TempB         

ldi TempD,0b00001000  
out DDRD,TempD

rjmp LOP;
-------------------------

И схему подключаю не работает ((
в чем проблемма*?

Схема на Фото003.jpg

Добавлено: Ср янв 21, 2009 20:21:05
ЛеонидК
Я думаю твоя программа работает.
Ты сначала сам сформулируй, что ты хочешь получить в результате ее работы.

Добавлено: Ср янв 21, 2009 20:25:00
drakoshaprog
1 семисегментник должен загореться

но при подключеннии ничего не происходит ((

()

Добавлено: Ср янв 21, 2009 20:30:41
ЛеонидК
Ничего себе ответ.
Поди туда не знаю куда, принеси то, не знаю что.
А как и куда он у тебя подключен.
Зачем тебе бесконечный цикл, который ничего не делает?

Добавлено: Ср янв 21, 2009 20:34:32
uu9jag
drakoshaprog писал(а):1 семисегментник должен загореться

но при подключеннии ничего не происходит ((

()
Сегментик наверное загорается и гаснет,но ..ну очееень быстро :)

Добавлено: Ср янв 21, 2009 20:37:07
drakoshaprog
у меня подключено 4 семисегментных индикатора если на порт d послать 5вольт а на b 0вольт то должен загореться один сегмент

в данном случае я вывожу на B все нули а на порт D 1 единичку => должно загореться 7 сегментов ))

но этого не происходит

---------
может схемка неправильная? там на фотографии схема.
резанонатор ZTT на 20 MГц
---------

Добавлено: Ср янв 21, 2009 21:05:23
ЛеонидК
Хотеть и делать вещи не идентичные.

.include "2313def.inc"

.def TempB=R16 ; это только для удобства
.def TempD=R17

.cseg
.org 0

ldi R16,0b11111111 ; DDRx только устанавливает режим порта
; в данном случае на вывод
out DDRB,TempB ;
ldi R16,0b11111111 ;
out PORTB,R16; в PORTB все 1

ldi R16,0b11111111 ;
out DDRD,TempB ; на вывод
ldi R16,0b11101111 ; бит 4 в 0 - это для примера, я номера
; битов не смотрел
out PORTD,R16; сегмент подключенный к 4 биту должен светится

LOP: ; в цикле можно организовать мигание
; только нужны задержки, а то никто не успеет заметить
rjmp LOP;

Очень сомневаюсь в 20 МГц.
Даташит нужно читать.
Через этот бит будет течь суммарный ток индикатора (7 сегментов).
Резисторы ограничительные должны быть соответсвующими.

Добавлено: Ср янв 21, 2009 21:29:59
drakoshaprog
Спасибо )) ваш код заработал ))

Добавлено: Ср янв 21, 2009 21:35:34
drakoshaprog
Как правильно поставить задержку?

Добавлено: Ср янв 21, 2009 22:01:42
ЛеонидК
Ребята!
Ну если бы только задержку.
Надо же и самим что-то делать.
Читайте книги. Книга источник знаний.
Например:
Голубцов М.С. Микроконтроллеры AVR: от простого к сложному.
Там все нужное найдете.
Ну да ладно.

ldi R16,0b11101111 ; бит 4 в 0 - это для примера, я номера
; битов не смотрел
out PORTD,R16; сегмент подключенный к 4 биту должен светится

LOP: ;
ldi R16,0b01111111
out PORTD,R16
rcall delay
ldi R16,0b10111111
out PORTD,R16
rcall delay
ldi R16,0b11011111
out PORTD,R16
rcall delay
ldi R16,0b11101111
out PORTD,R16
rcall delay
; и т. д. - биты я написал условно
rjmp LOP;

delay: ldi R18,0xFF ; 0xFF (255) определяет длительность -
;можно менять
delay1: ldi R17,0xFF;
delayloop: dec R17;
breq delayloop
dec R18
breq delay1
ret

Добавлено: Ср янв 21, 2009 22:56:55
ЛеонидК
Ну слишком быстро.

delay:ldi R19,0xFF ; 0xFF (255) определяет длительность -
;можно менять
delay2: ldi R18,0xFF ;
delay1: ldi R17,0xFF;
delayloop: dec R17;
breq delayloop
dec R18
breq delay1
dec r19
breq delay2
ret

Добавлено: Ср янв 21, 2009 23:04:45
Иван23
часов много разных
http://radiokot.ru/forum/viewtopic.php?t=12440 на меге8
http://radiokot.ru/forum/viewtopic.php?t=12588 на 2313
http://radiokot.ru/forum/viewtopic.php?t=11872 на меге8
мож чем помогут

Добавлено: Чт янв 22, 2009 22:44:38
drakoshaprog
Не подскажите где и как настроить таймер ?

идея чтобы каждую секунду менялось значение ))

как это сделать? или где об этом почитать ?

Добавлено: Чт янв 22, 2009 23:22:49
sheva_s
drakoshaprog писал(а): как это сделать? или где об этом почитать ?
Почитать можно тут http://radiokot.ru/start/mcu_fpga/avr/11/

Добавлено: Чт янв 22, 2009 23:33:40
ЛеонидК
А самому поискать слабо.
www.radioscanner.ru/files/electronics/file5596/

Добавлено: Пт янв 23, 2009 00:20:57
GRafGRay
мне кажется Вы пользуете ATtyny 2313 а компилируете почему-то 2313def.inc - это ж для АТ90s
почитайте обучалку, мне однажды помогло