Страница 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
Добавлено: Чт янв 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
ЛеонидК
Добавлено: Пт янв 23, 2009 00:20:57
GRafGRay
мне кажется Вы пользуете ATtyny 2313 а компилируете почему-то 2313def.inc - это ж для АТ90s
почитайте обучалку, мне однажды помогло