Регистрация | Последние сообщения | Персональный список | Поиск | Настройка конференции | Личные данные | Правила конференции | Список участников | Top 64 | Статистика раздела | faq | Что нового v.2.3 | Чат
Skunk Forum - Техника, Наука, Общество » Форум разработчиков РЭА »
Вход контроллера - он же выход для индикации (страница 1)

Версия для печати (настроить)
Страницы: 1 2

Новая тема | Написать ответ

Подписаться

Автор Тема:   Вход контроллера - он же выход для индикации
ava2
Member

Сообщений: 54
Откуда: Тамбов
Регистрация: Сентябрь 2006

написано 03 Апреля 2007 11:19ИнфоПравкаОтветитьIP

Мне нужно быстро сделать таймер (контроль времени сушки плат после мойки) быстро и вчера.
Поменьше деталей: без кварцевого резонатора.
Вопрос №1. Если использовать ATtiny12 и её порты так: ставим обычные кнопки на 5 входов (программная подтяжка внутренними резисторами), туда же через резистор 200 Ом подключаем катод светодиода. Кнопка называется, например, "30мин" ...

Как только нажмём, превратим вход в выход ("0") и загорится светодиод - откуда узнаем, что включен режим "30 минут".
В этом, пока, есть что-то крамольное?

Добавление от 03 Апреля 2007 11:36:

второй контакт кнопки - корпус, а на аноде светодиода +5В.

Весельчак У
Moderator

Сообщений: 8636
Откуда: Санктъ-Питербурхъ
Регистрация: Декабрь 2000

написано 03 Апреля 2007 21:55ИнфоПравкаОтветитьIP

Крамольного ничего, только надо не забывать переключать состояние выходов через DDRx, а не через PORTx, в который предварительно надо записать "0" в соответствующий разряд. После окончания выдержки надо выключать светодиод опять же через DDRx. Это всё, чтобы случайно не замкнуть кнопкой на землю выход, установленный в "1".

Dikoy
Member

Сообщений: 1054
Откуда: Богота, Колумбия
Регистрация: Май 2003

написано 04 Апреля 2007 00:21ИнфоПравкаОтветитьIP

Это всё, чтобы случайно не замкнуть кнопкой на землю выход, установленный в "1".
АВРу ничего не будет - у него самоограничение тока выхода Официальные данные.

ava2
Member

Сообщений: 55
Откуда: Тамбов
Регистрация: Сентябрь 2006

написано 05 Апреля 2007 15:50ИнфоПравкаОтветитьIP

А ещё хочется сделать и звуковую индикацию с мелодией "с голубого ручейка" (была в инете), но так чтобы с 4-х одинаковых таймеров (соответсвуют полкам камеры) шел сигнал на один динамик.
Например, с пина контролера идём на резистор1 - далее на разделительный конденсатор -с него на базу КТ829 (усиление > 700) - в цепи эмиттера динамик с резистором - ограничителем тока2.
Все резисторы соединяются около входного вывода конденсатора.
Вопрос: какую емкость (номинал)ставить?
И так ли вообще всё?

ava2
Member

Сообщений: 56
Откуда: Тамбов
Регистрация: Сентябрь 2006

написано 05 Апреля 2007 17:03ИнфоПравкаОтветитьIP

Где для сторожевого таймера ставить команды?
Это весьма черновой вариант - особенно где начало музыки
Комментарии вообще могут не совпадать с содержанием команд


;*****************************************************************************
;* AVR: "timer + Music v1.0" *
;* = Алёхин В.А. 04 апреля 2007 г. = ОАО "ТВЕС" *
;* Таймер : программа отработки заданных временных интервалов с индикацией *
;* их включения (горит соответсвующий светодиод). *
;* По окончании отработки звучит бесконечно мелодия(до нажатия кнопки "Stop")*
;* Временные интервалы :20-30-40-50-60 минут.Назначение - камера сушки плат. *
;*-------------------------------------------------------------------------- *
;* задействованы Music v1.0 - *
;* процедуры генерации звуковых сигналов заданной тональности. *
;* Кауфман Владимир. Email:qwerty@nara.ru *
;* Последнее обновление: 21 мая 2002 г. *
;*****************************************************************************
;* Характеристики: *
;* Микроконтроллер: ATtiny12 (22). *
;* Тактовая частота - 1 МГц (внутренний RC-генератор). *
;*****************************************************************************

.include "tn12def.inc"

;******************** РЕГИСТРЫ **********************
.def fCOUNTER =r16 ; Счетчик только для локального пользования.
.def fCOUNTER1 =r17 ; Счетчик2.
.def fCOUNTER2 =r18
.def fCOUNTER3 =r19
.def fCOUNTER4 =r20
.def fBEEP_CNT =r21 ; Счетчик пищания.
.def fTEMP =r22 ; Временный регистр только для локального использования.
.equ PORTB_IO_MAP =0b00011111 ; Направление выводов (0 - вход, 1 - выход).
.equ BEEPER =3 ; Пьезодинамик.

;.equ PORTB_IO_MAP =0b00011111 ; Направление выводов (0 - вход, 1 - выход).
;.equ BEEPER =3 ; Пьезодинамик.

;.cseg ;Сегмент CODE
;.org 0
;<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<
; И Н И Ц И А Л И З А Ц И Я
;>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
Start:

ldi fTEMP,0
out DDRB,fTEMP; все разряды порта программируем на вход - опрос кнопок

ser fTEMP
out PORTB,fTEMP; подтяжка внутреняя - не нужны внешние резисторы

ldi fTEMP,33 ; Корректировка тактовой частоты генератора.
out OSCCAL,fTEMP
;
;<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<
; Г Л А В Н Ы Й П Р О Г Р А М М Н Ы Й Ц И К Л
;>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>


begin:

sbis PinB,0 ; опрос клавиатуры:
rcall time1 ; если бит установлен (кнопка в этом разряде не нажата - подтяжка внутренняя), то пропускаем команду ниже
; если бит очищен (кнопка нажата - см. схему), то переходим к отработке интервала 1
; идентичные п\п опроса других разрядов (кнопок) ниже.
sbis PinB,1
rcall time2

sbis PinB,2
rcall time3

sbis PinB,3
rcall time4

sbis PinB,4
rcall time5

rjmp begin; зацикливаем программу опроса кнопок таймера, если не нажата ни одна кнопка


time1:

ldi fTEMP,1 ; прежде чем начать отсчёт времени зажжём светодиод в том же разряде, где кнопка
out DDRB,fTEMP ; для этого делаем этот разряд выходом (был вход)

ldi fTEMP, 0
out PORTB,fTEMP ; и устанавливаем "0" на этом пине - загорится светодиод "20 минут"

A20:
clr ftemp; организуем цикл отработки времени 20 раз по 1 минуте
ldi ftemp, 20
A1: dec ftemp
rcall delay1 ; задержка одна минута
brne A1
rcall MainLoop ; задержка 20 минут организована - поем песню "с голубого ручейка"(замкнутый цикл)


time2:

ldi fTEMP,1; прежде чем начать отсчёт времени зажжём светодиод в том же бите, где кнопка
out DDRB,fTEMP;для этого делаем этот разряд выходом (был вход)

ldi fTEMP, 0
out PORTB,fTEMP; и устанавливаем "0" на этом пине - загорится светодиод "30 минут"

B30:
clr ftemp; организуем цикл отработки времени 30 раз по 1 минуте
ldi ftemp, 30
B1: dec ftemp
rcall delay1 ; задержка одна минута
brne B1
rcall MainLoop ; задержка 30 минут организована - поем песню "с голубого ручейка"(замкнутый цикл)


time3:

ldi fTEMP,1; прежде чем начать отсчёт времени зажжём светодиод в том же бите, где кнопка
out DDRB,fTEMP;для этого делаем этот разряд выходом (был вход)

ldi fTEMP, 0
out PORTB,fTEMP; и устанавливаем "0" на этом пине - загорится светодиод "40 минут"

C40:
clr ftemp; организуем цикл отработки времени 40 раз по 1 минуте
ldi ftemp, 40
C1: dec ftemp
rcall delay1 ; задержка одна минута
brne C1
rcall MainLoop ; задержка 40 минут организована - поем песню "с голубого ручейка"(замкнутый цикл)


time4:

ldi fTEMP,1; прежде чем начать отсчёт времени зажжём светодиод в том же бите, где кнопка
out DDRB,fTEMP;для этого делаем этот разряд выходом (был вход)

ldi fTEMP, 0
out PORTB,fTEMP; и устанавливаем "0" на этом пине - загорится светодиод "50 минут"

D50:
clr ftemp; организуем цикл отработки времени 20 раз по 1 минуте
ldi ftemp, 50
D1: dec ftemp
rcall delay1 ; задержка одна минута
brne D1
rcall MainLoop ; задержка 50 минут организована - поем песню "с голубого ручейка"(замкнутый цикл)

time5:

ldi fTEMP,1; прежде чем начать отсчёт времени зажжём светодиод в том же бите, где кнопка
out DDRB,fTEMP;для этого делаем этот разряд выходом (был вход)

ldi fTEMP, 0
out PORTB,fTEMP; и устанавливаем "0" на этом пине - загорится светодиод "60 минут"

.6.:
clr ftemp; организуем цикл отработки времени 60 раз по 1 минуте
ldi ftemp, 60
E1: dec ftemp
rcall delay1 ; задержка одна минута
brne E1
rcall MainLoop ; задержка 60 минут организована - поем песню "с голубого ручейка"(замкнутый цикл)

delay1:; подпрограмма задержки - около 1минуты
clr fCOUNTER1 ;
clr fCOUNTER2;
clr fCOUNTER3;
clr fCOUNTER4;
ldi fCOUNTER1,2;
d: ldi fCOUNTER2,251;
c: ldi fCOUNTER3,219;
b: ldi fCOUNTER4,179;
a:
dec fCOUNTER4;
brne a; перейти к ... если не равно 0
dec fCOUNTER3;
brne b;
;

dec fCOUNTER2;
brne c;
dec fCOUNTER1;
brne c;

ret

MainLoop:

clr fTEMP
out PORTB,fTEMP

ldi fTEMP,PORTB_IO_MAP
out DDRB,fTEMP

ldi fTEMP,33 ; ????????????? ???????? ??????? ??????????.
out OSCCAL,fTEMP
;

;
;sbrc input,3
;rcall MainLoop

rcall Ulitka
rjmp MainLoop
;-----------------------------------------------------------------------------
delay:
mov fCOUNTER,fTEMP
d_loop:
dec fCOUNTER
brne d_loop
ret
;--------------------------------------------------------------------------
Big_delay:
mov fCOUNTER2,fTEMP
clr fCOUNTER
BD_loop:
dec fCOUNTER
brne BD_loop
dec fCOUNTER2
brne BD_loop
ret
;-----------------------------------------------------------------------------
; Музыкальные процедуры.
;-----------------------------------------------------------------------------
Beep_C: ; До: 1.911079 ms. 1911 cycles.
ldi fBEEP_CNT,52
BC_BeepLoop:
sbi PORTB,BEEPER
ldi fTEMP,2
rcall Big_delay
ldi fTEMP,117
rcall delay
cbi PORTB,BEEPER
ldi fTEMP,2
rcall Big_delay
ldi fTEMP,116
rcall delay
dec fBEEP_CNT
brne BC_BeepLoop
ret
;-----------------------------------------------------------------------------
Beep_C_diez: ; До#: 1.803824 ms. 1805 cycles.
ldi fBEEP_CNT,55
BCd_BeepLoop:
sbi PORTB,BEEPER
ldi fTEMP,2
rcall Big_delay
ldi fTEMP,82
rcall delay
cbi PORTB,BEEPER
ldi fTEMP,2
rcall Big_delay
ldi fTEMP,81
rcall delay
dec fBEEP_CNT
brne BCd_BeepLoop
ret
;-----------------------------------------------------------------------------
Beep_D: ; Ре: 1.702588 ms. 1703 cycles.
ldi fBEEP_CNT,59
BD_BeepLoop:
sbi PORTB,BEEPER
ldi fTEMP,2
rcall Big_delay
ldi fTEMP,48
rcall delay
cbi PORTB,BEEPER
ldi fTEMP,2
rcall Big_delay
ldi fTEMP,47
rcall delay
dec fBEEP_CNT
brne BD_BeepLoop
ret
;-----------------------------------------------------------------------------
Beep_D_diez: ; Ре#: 1.6070334 ms. 1607 cycles.
ldi fBEEP_CNT,62
BDd_BeepLoop:
sbi PORTB,BEEPER
ldi fTEMP,2
rcall Big_delay
ldi fTEMP,16
rcall delay
cbi PORTB,BEEPER
ldi fTEMP,2
rcall Big_delay
ldi fTEMP,15
rcall delay
dec fBEEP_CNT
brne BDd_BeepLoop
ret
;-----------------------------------------------------------------------------
Beep_E: ; Ми: 1.516842 ms. 1517 cycles.
ldi fBEEP_CNT,66
BE_BeepLoop:
sbi PORTB,BEEPER
ldi fTEMP,0
rcall delay
ldi fTEMP,244
rcall delay
cbi PORTB,BEEPER
ldi fTEMP,0
rcall delay
ldi fTEMP,243
rcall delay
dec fBEEP_CNT
brne BE_BeepLoop
ret
;-----------------------------------------------------------------------------
Beep_F: ; Фа: 1.431712 ms. 1432 cycles.
ldi fBEEP_CNT,70
BF_BeepLoop:
sbi PORTB,BEEPER
ldi fTEMP,0
rcall delay
ldi fTEMP,215
rcall delay
cbi PORTB,BEEPER
ldi fTEMP,0
rcall delay
ldi fTEMP,214
rcall delay
dec fBEEP_CNT
brne BF_BeepLoop
ret
;-----------------------------------------------------------------------------
Beep_F_diez: ; Фа#: 1.351360 ms. 1351 cycles.
ldi fBEEP_CNT,74
BFd_BeepLoop:
sbi PORTB,BEEPER
ldi fTEMP,0
rcall delay
ldi fTEMP,188
rcall delay
cbi PORTB,BEEPER
ldi fTEMP,0
rcall delay
ldi fTEMP,187
rcall delay
dec fBEEP_CNT
brne BFd_BeepLoop
ret
;-----------------------------------------------------------------------------
Beep_G: ; Соль: 1.275518 ms. 1275 cycles.
ldi fBEEP_CNT,78
BG_BeepLoop:
sbi PORTB,BEEPER
ldi fTEMP,0
rcall delay
ldi fTEMP,163
rcall delay
cbi PORTB,BEEPER
ldi fTEMP,0
rcall delay
ldi fTEMP,162
rcall delay
dec fBEEP_CNT
brne BG_BeepLoop
ret
;-----------------------------------------------------------------------------
Beep_G_diez: ; Соль#: 1.203932 ms. 1204 cycles.
ldi fBEEP_CNT,83
BGd_BeepLoop:
sbi PORTB,BEEPER
ldi fTEMP,0
rcall delay
ldi fTEMP,139
rcall delay
cbi PORTB,BEEPER
ldi fTEMP,0
rcall delay
ldi fTEMP,138
rcall delay
dec fBEEP_CNT
brne BGd_BeepLoop
ret
;-----------------------------------------------------------------------------
Beep_A: ; Ля: 1.136363 ms. 1136 cycles.
ldi fBEEP_CNT,88
BA_BeepLoop:
sbi PORTB,BEEPER
ldi fTEMP,0
rcall delay
ldi fTEMP,117
rcall delay
cbi PORTB,BEEPER
ldi fTEMP,0
rcall delay
ldi fTEMP,116
rcall delay
dec fBEEP_CNT
brne BA_BeepLoop
ret
;-----------------------------------------------------------------------------
Beep_A_diez: ; Ля#: 1.072587 ms. 1073 cycles.
ldi fBEEP_CNT,93
BAd_BeepLoop:
sbi PORTB,BEEPER
ldi fTEMP,0
rcall delay
ldi fTEMP,96
rcall delay
cbi PORTB,BEEPER
ldi fTEMP,0
rcall delay
ldi fTEMP,95
rcall delay
dec fBEEP_CNT
brne BAd_BeepLoop
ret
;-----------------------------------------------------------------------------
Beep_B: ; Си: 1.012391 ms. 1012 cycles.
ldi fBEEP_CNT,99
BB_BeepLoop:
sbi PORTB,BEEPER
ldi fTEMP,0
rcall delay
ldi fTEMP,75
rcall delay
cbi PORTB,BEEPER
ldi fTEMP,0
rcall delay
ldi fTEMP,74
rcall delay
dec fBEEP_CNT
brne BB_BeepLoop
ret
;-----------------------------------------------------------------------------
Beep_C2: ; До следующей октавы: 0.955572 ms. 956 cycles.
ldi fBEEP_CNT,105
BC2_BeepLoop:
sbi PORTB,BEEPER
ldi fTEMP,0
rcall delay
ldi fTEMP,57
rcall delay
cbi PORTB,BEEPER
ldi fTEMP,0
rcall delay
ldi fTEMP,56
rcall delay
dec fBEEP_CNT
brne BC2_BeepLoop
ret
;-----------------------------------------------------------------------------
Beep_C2_diez: ; До# следующей октавы: 0.901943 ms. 902 cycles.
ldi fBEEP_CNT,111
BC2d_BeepLoop:
sbi PORTB,BEEPER
ldi fTEMP,0
rcall delay
ldi fTEMP,39
rcall delay
cbi PORTB,BEEPER
ldi fTEMP,0
rcall delay
ldi fTEMP,38
rcall delay
dec fBEEP_CNT
brne BC2d_BeepLoop
ret
;-----------------------------------------------------------------------------
Beep_D2: ; Ре следующей октавы: 0.85132 ms. 851 cycles.
ldi fBEEP_CNT,118
BD2_BeepLoop:
sbi PORTB,BEEPER
ldi fTEMP,0
rcall delay
ldi fTEMP,22
rcall delay
cbi PORTB,BEEPER
ldi fTEMP,0
rcall delay
ldi fTEMP,21
rcall delay
dec fBEEP_CNT
brne BD2_BeepLoop
ret
;-----------------------------------------------------------------------------
Beep_Separator:
ldi fTEMP,10
rcall Big_delay
ret
;-----------------------------------------------------------------------------
Beep_Pause:
ldi fBEEP_CNT,118
BP_BeepLoop:
ldi fTEMP,0
rcall delay
ldi fTEMP,22
rcall delay
ldi fTEMP,0
rcall delay
ldi fTEMP,21
rcall delay
dec fBEEP_CNT
brne BP_BeepLoop
ret
;-----------------------------------------------------------------------------
;-----------------------------------------------------------------------------
Ulitka:
rcall Beep_G
rcall Beep_E
rcall Beep_A
rcall Beep_A
rcall Beep_G
rcall Beep_G
rcall Beep_D
rcall Beep_F
rcall Beep_E
rcall Beep_D
rcall Beep_C
rcall Beep_C
rcall Beep_C
rcall Beep_C
rcall Beep_Pause
rcall Beep_Pause
rcall Beep_E
rcall Beep_G
rcall Beep_A
rcall Beep_Separator
rcall Beep_A
rcall Beep_Separator
rcall Beep_A
rcall Beep_Separator
rcall Beep_B
rcall Beep_D2
rcall Beep_C2
rcall Beep_B
rcall Beep_A
rcall Beep_C2
rcall Beep_C2
rcall Beep_G
rcall Beep_G
rcall Beep_Pause
rcall Beep_Pause
rcall Beep_A
rcall Beep_B
rcall Beep_C2
rcall Beep_C2
rcall Beep_C2
rcall Beep_B
rcall Beep_A
rcall Beep_E
rcall Beep_G
rcall Beep_F
rcall Beep_A
rcall Beep_A
rcall Beep_A
rcall Beep_A
rcall Beep_Pause
rcall Beep_Pause
rcall Beep_B
rcall Beep_A
rcall Beep_C2
rcall Beep_G
rcall Beep_B
rcall Beep_A
rcall Beep_Separator
rcall Beep_A
rcall Beep_G
rcall Beep_D
rcall Beep_E
rcall Beep_D
rcall Beep_D
rcall Beep_C
rcall Beep_C
rcall Beep_Pause
rcall Beep_Pause
rcall Beep_Separator
rcall Beep_C
rcall Beep_D_diez
rcall Beep_G
rcall Beep_Separator
rcall Beep_G
rcall Beep_Separator
rcall Beep_G
rcall Beep_Separator
rcall Beep_G
rcall Beep_Separator
rcall Beep_G
rcall Beep_Pause
rcall Beep_C2
rcall Beep_C
rcall Beep_D_diez
rcall Beep_D
rcall Beep_Separator
rcall Beep_D
rcall Beep_Separator
rcall Beep_D
rcall Beep_Separator
rcall Beep_D
rcall Beep_Pause
rcall Beep_D
rcall Beep_D_diez
rcall Beep_G
rcall Beep_F
rcall Beep_G
rcall Beep_G_diez
rcall Beep_G
rcall Beep_F
rcall Beep_G
rcall Beep_G_diez
rcall Beep_C2
rcall Beep_C2
rcall Beep_A_diez
rcall Beep_A_diez
rcall Beep_A_diez
rcall Beep_A_diez
rcall Beep_C2
rcall Beep_G
rcall Beep_A_diez
rcall Beep_G_diez
rcall Beep_Separator
rcall Beep_G_diez
rcall Beep_Separator
rcall Beep_G_diez
rcall Beep_Separator
rcall Beep_G_diez
rcall Beep_Pause
rcall Beep_C2
rcall Beep_F
rcall Beep_G_diez
rcall Beep_G
rcall Beep_Separator
rcall Beep_G
rcall Beep_Separator
rcall Beep_G
rcall Beep_Separator
rcall Beep_G
rcall Beep_Pause
rcall Beep_C2
rcall Beep_D_diez
rcall Beep_D
rcall Beep_D_diez
rcall Beep_F
rcall Beep_G_diez
rcall Beep_G
rcall Beep_F
rcall Beep_D_diez
rcall Beep_F
rcall Beep_G
rcall Beep_G
rcall Beep_C
rcall Beep_C
rcall Beep_Pause
rcall Beep_Pause
ret
;-----------------------------------------------------------------------------

Весельчак У
Moderator

Сообщений: 8642
Откуда: Санктъ-Питербурхъ
Регистрация: Декабрь 2000

написано 05 Апреля 2007 22:57ИнфоПравкаОтветитьIP

Dikoy
самоограничение тока выхода
Неправильный подход.
Да и даже ежели так, то ток через все выводы ограничен достаточно небольшим значением.

ava2
Вопрос: какую емкость (номинал)ставить?
А посчитать? Rc=1/(2*Пи*fн*C).

Где для сторожевого таймера ставить команды?
Что имеется в виду?
В правильно спаянной схеме без сильных электромагнитных и электрических помех сторожеквой таймер можно не использовать.

ava2
Member

Сообщений: 57
Откуда: Тамбов
Регистрация: Сентябрь 2006

написано 06 Апреля 2007 08:26ИнфоПравкаОтветитьIP

1. т.е чем больше ёмкость. тем лучще?
На счёт Rc как сориентировться: мне нужно С, известна fн ?
2. Обогреватель с вентилятором может такие помехи создать?

Добавление от 06 Апреля 2007 08:30:

2. Впрочем о чём это я - таймер же на столе может стоять, а не в камере.

Весельчак У
Moderator

Сообщений: 8646
Откуда: Санктъ-Питербурхъ
Регистрация: Декабрь 2000

написано 06 Апреля 2007 12:11ИнфоПравкаОтветитьIP

ava2
1. Зависит от резистора сумматора. Rc должно быть не больше, а лучше меньше раз в 10.
Кстати, конденсатор не обязателен (ежели программа не зависнет ).

2. Обогреватель с вентилятором может такие помехи создать?
Сам по себе - нет, но через электрическую сеть - да, ежели неправильно сделан блок питания.

Dikoy
Member

Сообщений: 1055
Откуда: Богота, Колумбия
Регистрация: Май 2003

написано 06 Апреля 2007 16:55ИнфоПравкаОтветитьIP

Весельчак У
Неправильный подход.
Кто бы спорил...
Однако эта фича отражена в официальных документах и разрешена к использованию

Да и даже ежели так, то ток через все выводы ограничен достаточно небольшим значением.
40 мА max на лапу.

Весельчак У
Moderator

Сообщений: 8650
Откуда: Санктъ-Питербурхъ
Регистрация: Декабрь 2000

написано 08 Апреля 2007 11:16ИнфоПравкаОтветитьIP

Dikoy
Однако эта фича отражена в официальных документах и разрешена к использованию
Не знаю, не встречал.
Судя по расчётам (весьма приближённым, поскольку сопротивление выхода нелинейное), от вывода tiny12 можно ожидать стекающего тока до 20 мА, в Mege16 например, до 120 мА.

40 мА max на лапу.
Имелось в виду через выводы всего порта, суммарно. А ещё точнее через выводы питания и общего. В этом контроллере - 100 мА, в MEGA16, например, 200 мА в DIP'е и 400 мА в TQFP и MLF.

ava2
Member

Сообщений: 58
Откуда: Тамбов
Регистрация: Сентябрь 2006

написано 09 Апреля 2007 16:31ИнфоПравкаОтветитьIP

Как сделать так , чтобы внутренний генератор работал на какой то точной расчётной частоте.
Или это невозможно? (Studio при 1.2 Мгц показывает 30021395 мкс в подпрограмме задержки. Ставлю 2 захода и получаю реально по часам 1мин 6 секунд)

Добавление от 09 Апреля 2007 16:36:

Уточняю- какое значение OSCCAL брать?

Добавление от 09 Апреля 2007 19:19:

пришел к выводу, что с каждым контроллером нужно возиться:
di fTEMP,45 ; попытка настроить внутренний генератор на 1.2Мгц (но похоже,что каждый МК нужно подстраивать отдельно)
out OSCCAL,fTEMP

Ваш ответ:

Коды форума
Смайлики


Ник:    Пароль       
Отключить смайлики
Страницы: 1 2

Все время MSK

Склеить | Разбить | Закрыть | Переместить | Удалить

Новая тема | Написать ответ
Последние сообщения         
Перейти к:

Свяжитесь с нами | skunksworks.net

Copyright © skunksworks.net, 2000-2018

Разработка и техническая поддержка: skunksworks.net


Рейтинг@Mail.ru Яндекс.Метрика