Jump to content
Onixx

Помогите Студенту-Чайнику По Мк

Recommended Posts

спасибо за комментарии! Насчет руки и ее сопротивления, это не моя прихоть - это задание курсовика! я использую программу PROTEUS, в ней соберу схему и напишу прогу. Я понимаЮ что надо нарисовать макет с питанием, реле и клавой, я просто не знаю как это все соеденить!

Edited by ragnarok

Share this post


Link to post
Share on other sites

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

Share this post


Link to post
Share on other sites

Всем привет, у меня такой вопрос. Как работает АЦП в микроконтроллере ADuC7027, а точнее как работает встроенный в него мультиплексор который перебирает каналы. В нём я использую 8 каналов. Заранее спасибо.

Share this post


Link to post
Share on other sites

Вебинар STM32G0 – новый лидер бюджетных 32-битных микроконтроллеров от STMicroelectronics

Компания Компэл приглашает вас 25 сентября принять участие в вебинаре, который посвящен новому семейству микроконтроллеров STM32G0. Вебинар рассчитан на технических специалистов и тех, кто хорошо знаком с семейством STM32. На вебинаре будут освоены современные методы тестирования производительности микроконтроллеров на примере самых бюджетных 32-битных семейств общего назначения STM32G0 и STM32F0 и проведено их подробное сравнение.

Подробнее

Есть программа передачи массива с одного компа на другой через 8251 в синхронном режиме, препод говорит, что есть две возможности синхронизировать два компа. 1 ждать DSR, вторую я не знаю. А вот моя реализация:

Но он говорит здесь есть ошибка связанная с ложной записью, кто-нибудь может подсказать в чем проблема? Пожалуйста помогите, а то достало уже. Нет ни книг описывающий как писать программы для 8251, ни препод не написал хотя бы методичку как писать.

Передатчик

mvi a, 82h	; INIT ВВ55 
out 83h 
mvi a, 36h	; INIT ВИ53 
out 87h 		; CT0, режим 3, 2 байта 
mvi a, 0a7h 	; мл. байт коэф. пересчета 
out 84h 
mvi a, 00h	; ст. байт  
out 84h 
lxi d, 3377h	; синхросимволы 
xra a 		; INIT ВВ51  
out 89h 		; поиск CI 
out 89h 
out 89h 
mvi a, 40h	; сброс 
out 89h 
mvi a, 08h	; синхр.режим, 7 бит, 2 синхр.си
out 89h 		; внутр. синхр., нет контроля 
mov a, d 	; первый синхр. символ 
out 89h 
mov a, e 	; второй синхр. символ 
out 89h 
in 88h 		; ложное чтение 
mvi a, 31h 	; TxEN ER RTS 
out 89h 
out 88h 		; ложная запись 
lxi b, 100h 	; коэф. задержки 
w1: in 89h 	; ждем TxRDY (CTS)
ani 01h 
jz w1 
w2: dcr c 	; задержка
jnz w2 
dcr b 
jnz w2 
w3: in 89h 	; ждем TxRDY 
ani 01h 
jz w3 
mvi a,55h					 ; Тупо выводим 55h
out 88h 		; выводим 
dcr b 
jnz w3 		; цикл 
rst7


Приемник

mvi a, 76h ; INIT ВИ53 
out 87h 	; CT1, режим 3, 2 байта
mvi a, 0a7h; мл. байт коэф. пересчета  
out 85h 
mvi a, 00h ; ст. байт  
out 85h 
lxi d, 3377h ; синхросимволы  
xra a 	; INIT ВВ51  
out 89h 	; поиск CI 
out 89h 
out 89h 
mvi a, 40h ; сброс 
out 89h 
mvi a, 08h; синхр. режим, 7 бит, 2 синхр.симв. 
out 89h 	; внутр. синхр., нет контроля 
mov a, d ; первый синхр. символ 
out 89h 
mov a, e ; второй синхр. символ 
out 89h 
in 88h 	; ложное чтение 
mvi a, 94h; EN ER RxEN 
out 89h 
lxi h, 0899h ; пишем в память с 0900h 
mvi b, 00h ; прием 256 символов 
w1: in 89h ; ждем DSR 
ani 80h 
jz w1 
mvi a, 06h ; RxEN DTR 
out 89h 
w2: in 89h; ждем RxRDY 
ani 02h 
jz w2 
in 88h 	; читаем 
cmp d 	; сравниваем с 1-м синхр.симв. 
jz w2 
cmp e 	; сравниваем со 2-м синхр.симв. 
jz w2 
inx h 			   ; HL++ 
mov m, a ; пишем в память 
dcr b 	; B-- 
jnz w2 	; цикл 
rst7

[/code]

Share this post


Link to post
Share on other sites

Есть программа передачи массива с одного компа на другой через 8251 в синхронном режиме, препод говорит, что есть две возможности синхронизировать два компа. 1 ждать DSR, вторую я не знаю. А вот моя реализация:

Но он говорит здесь есть ошибка связанная с ложной записью, кто-нибудь может подсказать в чем проблема? Пожалуйста помогите, а то достало уже. Нет ни книг описывающий как писать программы для 8251, ни препод не написал хотя бы методичку как писать.

Передатчик

mvi a, 82h	; INIT ВВ55 
out 83h 
mvi a, 36h	; INIT ВИ53 
out 87h 		; CT0, режим 3, 2 байта 
mvi a, 0a7h 	; мл. байт коэф. пересчета 
out 84h 
mvi a, 00h	; ст. байт  
out 84h 
lxi d, 3377h	; синхросимволы 
xra a 		; INIT ВВ51  
out 89h 		; поиск CI 
out 89h 
out 89h 
mvi a, 40h	; сброс 
out 89h 
mvi a, 08h	; синхр.режим, 7 бит, 2 синхр.си
out 89h 		; внутр. синхр., нет контроля 
mov a, d 	; первый синхр. символ 
out 89h 
mov a, e 	; второй синхр. символ 
out 89h 
in 88h 		; ложное чтение 
mvi a, 31h 	; TxEN ER RTS 
out 89h 
out 88h 		; ложная запись 
lxi b, 100h 	; коэф. задержки 
w1: in 89h 	; ждем TxRDY (CTS)
ani 01h 
jz w1 
w2: dcr c 	; задержка
jnz w2 
dcr b 
jnz w2 
w3: in 89h 	; ждем TxRDY 
ani 01h 
jz w3 
mvi a,55h					 ; Тупо выводим 55h
out 88h 		; выводим 
dcr b 
jnz w3 		; цикл 
rst7


Приемник

mvi a, 76h ; INIT ВИ53 
out 87h 	; CT1, режим 3, 2 байта
mvi a, 0a7h; мл. байт коэф. пересчета  
out 85h 
mvi a, 00h ; ст. байт  
out 85h 
lxi d, 3377h ; синхросимволы  
xra a 	; INIT ВВ51  
out 89h 	; поиск CI 
out 89h 
out 89h 
mvi a, 40h ; сброс 
out 89h 
mvi a, 08h; синхр. режим, 7 бит, 2 синхр.симв. 
out 89h 	; внутр. синхр., нет контроля 
mov a, d ; первый синхр. символ 
out 89h 
mov a, e ; второй синхр. символ 
out 89h 
in 88h 	; ложное чтение 
mvi a, 94h; EN ER RxEN 
out 89h 
lxi h, 0899h ; пишем в память с 0900h 
mvi b, 00h ; прием 256 символов 
w1: in 89h ; ждем DSR 
ani 80h 
jz w1 
mvi a, 06h ; RxEN DTR 
out 89h 
w2: in 89h; ждем RxRDY 
ani 02h 
jz w2 
in 88h 	; читаем 
cmp d 	; сравниваем с 1-м синхр.симв. 
jz w2 
cmp e 	; сравниваем со 2-м синхр.симв. 
jz w2 
inx h 			   ; HL++ 
mov m, a ; пишем в память 
dcr b 	; B-- 
jnz w2 	; цикл 
rst7

[/code]

Share this post


Link to post
Share on other sites
                     

Литиевые батарейки Fanso в беспроводных датчиках пожарно-охранной сигнализации

Выбор подходящего элемента питания, способного обеспечивать требуемый уровень напряжения и выдавать необходимый ток на протяжении всего периода эксплуатации беспроводной пожарно-охранной системы является одной из первостепенных задач. Наиболее подходящим для этих целей элементом являются литий-тионилхлоридные элементы питания, а одним из наиболее конкурентоспособных производителей – компания Fanso, предлагающая своим клиентам продукты как универсальные, так и разработанные специально для решения конкретных задач.

Подробнее...

Здравствуйте! Уважаемые форумчане, скажите как управлять светодиодным драйвером

MIB5026 с помощью МК-Atmega32 (4 порта)

У MIB5026 есть 5 входов управляющих сигналов:

1)CLK 2)SDI 3)LE 4)OE 5)Вход для резистора задающего ток на 16-ти выходах

post-54440-1212507246_thumb.jpg

post-54440-1212507260_thumb.jpg

На сколько я понимаю

1)На вход CLK мы подаем тактовую частоту

2)Если на SDI приходит +5В и на CLK в течении этого времени произошло нарастание

переднего фронта, то по соответствующему номеру импульса CLK включается

соответствующий светодиод, и т.д. до LE

3)LE - +5 задает момент окончание приема SDI (на одном форуме читал что он(LE) не работает)

4)время на которое загорятся светодиоды

А теперь вопрос, уважаемые знатоки :rolleyes:

Что в таблице обозначает Dn?

Получается, мне надо тратить 4 ножки МК на подключение всего одного драйвера?

И что делать, если у меня имеется матрица светодиодов и мне нужно соединить 32 драйвера

(еще несколько контроллеров, либо ключ поставить, либо еще что либо)?

Просба давать ответы только с наборами Atmega + MIB

а тут и даташит естьmbi5028.pdf

Edited by Onixx

Share this post


Link to post
Share on other sites

А как на счет выложить ссылку на даташит этой самой MIB5026?

По делу.

Обрати внимание на вывод SO.

Цепляешь его к выводу SI следующего за ним драйвера и радуешься жизни.

LE должен переписывать из сдвигового регистра принятую информацию в паралельный.

Его дергаешь после передачи данных для всех драйверов.

Share this post


Link to post
Share on other sites
По делу.

Обрати внимание на вывод SO.

Цепляешь его к выводу SI следующего за ним драйвера и радуешься жизни.

LE должен переписывать из сдвигового регистра принятую информацию в паралельный.

Его дергаешь после передачи данных для всех драйверов.

Спасибо Migray, а насчет логики действия этого MIB'a я правильно написал выше?

Share this post


Link to post
Share on other sites

Почти правильно.

На вход SI выдаем информацию

На вход CLK мы подаем импульсы, по которым сдвигается информация в сдвиговом регистре

Из сдвигового регистра инфа выталкивается на вывод SO, для каскадирования микросхем.

Синхронизация не обязана быть какой-то фиксированной частотой.

Можно выставить инфу, на что-то другое отвлечься, потом и CLK перебросить.

Во время всего этого процесса, если LE в "0", информация на выходах не меняется.

После того, как записали информацию во все сдвиговые регистры, даем импульс записи на вывод LE

По этому импульсу инфа переписывается в регистры хранения, обычные паралельные "защелки".

Хотя в принципе LE независим от CLK, и дергать его можно сколько хочешь, что-бы наблюдать процесс :)

OE разрешает отображать информацию, хранящуюся в "защелках".

Можно подвязать к постоянному уровню и не париться.

В целях экономии батарей этим выводом можно отключать индикацию в переносных приборах.

Или регулировать яркость, подавая ШИМ-сигнал.

Share this post


Link to post
Share on other sites

Migray, спасибо за ответ. А вот еще такой вопрос: Как управляется MIB5028?

Если я правильно понимаю, имеется 2 режима, 1-ый обычный как для MIB5026.

2-ой - режим управления током

При подаче 101 на LE, включается выбор режима,

и если со следующим передним фронтом CLK на OE приходит:

1-то включается режим изменения тока.

0- включается обычный режим.

В режиме изменения тока, по SDI мы задаем значение каждого бита

0 бит не используется, 1 бит HC, 2 бит CC0 , 2 бит CC1 ... , 7 бит CC5,

7-15 биты не используются.

рассчитываем коэффициенты

G = (1 + HC) x (1 + D/64)/2

D = CC0 x (25^5)+ CC1 x (24^4)+ CC2 x (23^3)+ (CC3 x 22^2)+ CC4 x (21^1)+ CC5 x (20^0);

(0.63Volt x G / Rext ) x 15. - выходной ток на ВСЕХ выходах микросхемы

Затем посылаем 1 на LE и значение тока сохраняется

Потом посылаем на LE 101 на OE 1 и переходим в обычный режим.

И еще один вопрос: при большом количестве параллельно включенных MBI2028 нужны ли какие-либо дополнительные элементы (кроме токоограничительных резисторов для диодов и Rext) может фильтры какие- нибудь?

OE разрешает отображать информацию, хранящуюся в "защелках".

Можно подвязать к постоянному уровню и не париться.

В целях экономии батарей этим выводом можно отключать индикацию в переносных приборах.

Или регулировать яркость, подавая ШИМ-сигнал.

Каким образом можно регулировать? OE воспринимает всего два уровня

Share this post


Link to post
Share on other sites

Ребята, горю!!! Срочно нужна самая простая схемка схедующего типа.

На входе МК есть три ключа. на выходе 4 лампочки. При замыкании первого ключа, горит первая лампочка, при замыкании второго - вторая, при замыкании третьего - 3-я лампочка.

Когда замкнуты все три ключа с выхода МК поступает сигнал на др устройство. Вместо устройства для наглядности нужно использовать еще одну лампочку.

Нужно всю эту схему представить в EWB (Electronic WorkBench). Напряжение 12В, элементы не критичны, главное не использовать ничего лишнего. Ребята, срочно нужно!!! Помогите!!!

Share this post


Link to post
Share on other sites

Какой тип выходного сигнала на другое устройство ? И скажите применение этой девайсины.

И почему именно МК ? Это и без МК можно сделать.

Share this post


Link to post
Share on other sites

Да без разницы. Я собрал в EWB схемку на логическом "И". Но преподу не понравилось. Сказал, чтоб было на МК. На выходе сигнал любой. Другое устройство должно включаться в зависимости от сигнала на выходе МК: есть сигнал - ус-во работает, нет сигнала - курит)))

Edited by Alex
Зачем править посты ?

Share this post


Link to post
Share on other sites

Тогда к Вам вопрос. Вы же знаете прекрасно где нужно постить по студенческой теме. Почему новую тему создаёте ?

Share this post


Link to post
Share on other sites

Представим, что я не студент)))

Есть какие-нить соображения? Какие есть МК в EWB для решения данной задачки???

Share this post


Link to post
Share on other sites

Насколько я помню, у этих микросхем встроенные источники тока, поэтому токоограничивающие резисторы не нужны.

Достаточно с помощью Rext или цифрового способа задать ток, и он будет поддерживаться на этом уровне для всех включенных каналов.

При включении большого числа микросхем нужно учитывать нагрузочную способность выводов МК, которые будут управлять LE, OE и CLK

Возможно что придется сюда поставить буферные элементы.

ШИМ - это Широтно-Импульсная Модуляция, т.е. мы меняем ширину импульса при неизменной частоте.

Для примера возьмем частоту 100 Гц, что-бы не видеть мерцания.

Период равен 10 мсек.

Если мы будем выдавать разрешающий сигнал на OE в течении 1 мс, а 9 мс - запрет, то на светодиоды попадет 10% энергии.

Соответственно 5 мс импульс и 5 мс паузы - 50% мощности и т.д.

Варьируя ширину импульса на ОЕ можно в довольно широких пределах менять яркость светодиодов, при одном и том-же установленном Rext токе.

По крайней мере на TLC5921 это замечательно работало.

Нужно только помнить, что в режим стабилизации тока микросхема мгновенно не войдет, и задавать частоту ШИМ в десяток килогерц :)

Share this post


Link to post
Share on other sites
Ребята, горю!!! Срочно нужна самая простая схемка схедующего типа.

На входе МК есть три ключа. на выходе 4 лампочки. При замыкании первого ключа, горит первая лампочка, при замыкании второго - вторая, при замыкании третьего - 3-я лампочка.

Когда замкнуты все три ключа с выхода МК поступает сигнал на др устройство. Вместо устройства для наглядности нужно использовать еще одну лампочку.

Нужно всю эту схему представить в EWB (Electronic WorkBench). Напряжение 12В, элементы не критичны, главное не использовать ничего лишнего. Ребята, срочно нужно!!! Помогите!!!

Дак схема то не проблема, даже думаю для тебя. А прошивку для МК сам напишешь ?

Share this post


Link to post
Share on other sites

А прошивка это уже, как говорится, не моя забота))) Моя задача схему собрать))) Но я уже разобрался, срочно нужно было на понедельник. Уже разобрался.

Share this post


Link to post
Share on other sites

Доброго времени суток ! нужна помощь.

Цель задачи. Управлять с компьютера набором моторчиков( от 1 до 8) через rs232.

Что имеется:

1)компьютер с выходом RS-232. (никаких улучшений типа синего зуба или юсб не требуется)

2)Набор логики которая получает два бита и по ним решает куда крутить (или не крутить) моторчик

Подключил это «чудо» к параллельному выходу lpt. Всё работает.

Требуется: схема, которая сможет получить из компьютера данные и передать на вышеупомянутый набор логики.

Share this post


Link to post
Share on other sites

2 g_arkady

Преобразователь интерфейса (MAX232) + любой микроконтроллер, лучше, если с аппаратным usart (к примеру, какая-нибудь atmega).

Share this post


Link to post
Share on other sites

для такой простой задачи можно обойтись и без контроллера, с помощью регистра сдвига 74НС595

Share this post


Link to post
Share on other sites

Если 2 бита, то и регистра сдвига не надо, одного ADM/MAX 232 вполне хватит.

Если 2-битовое устройство нужно на каждый моторчик, то тогда да, сдвиговый регистр потребуется.

Share this post


Link to post
Share on other sites

как в CCW-PICC в процедуре delay_xx(a) заставить работать переменную "а", всё время какое я бы значение "а" не придал, оно одинаково (по осцилограмме) и не сопадает с тем значением которое должно быть на самом деле (два пика, в одном через переменную, в другом напрямую (т.е. delay_xx(100)) и сравнил осцилограммы, они на порядок различаются по врмени задержке...

подскажите как заставить работать их равнозначно ?

Share this post


Link to post
Share on other sites

В заголовочном файле прописана тактовая частота?

Например

#use delay (clock=4000000)

Share this post


Link to post
Share on other sites

Join the conversation

You are posting as a guest. If you have an account, sign in now to post with your account.
Note: Your post will require moderator approval before it will be visible.

Guest
Reply to this topic...

×   Pasted as rich text.   Restore formatting

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

Loading...

  • Similar Content

    • By Sofia Vin
      Предлагаем проектную работу в Москве:
      Микроконтроллер STM32F103.
        
      Есть встроенный код с использованием функций библиотеки FreeRTOS, код имеет описанный протокол для связи с внешним миром.
        
      Необходимо проводить доработку кода под задачи программиста верхнего уровня и его тестирование в составе оборудования. 
      Работа в лаборатории (м.Университет) и удаленно. 
      Оплата по договоренности.
      Если Вы обладаете опытом схемотехнического проектирования и программирования микроконтроллеров, и Вас заинтересовала данная возможность, ждем Ваши отклики по контактным данным:
      8 (925) 023-60-02   Алексей
      E-mail: nassa@marathon.ru
       
    • By Антон Плюшкин
      В общем есть небольшая тривиальная задача - сделать свитюльку. Контроллер управляет светодиодиками, цвета меняются, людишки довольны.
      Схема проста: Attiny44a -> 2n3904 x3 -> RGB-светодиод.
      Собрал, протестил, всё норм, но!
      Как только в коде я использую функцию задержки - _delay_ms (util/delay.h) - контроллер повисает!
      #define F_CPU 16000000UL #include <avr/io.h> #include <util/delay.h> int main(void) { // Input/Output Ports initialization // Port A initialization // Function: Bit7=Out Bit6=Out Bit5=In Bit4=In Bit3=In Bit2=In Bit1=In Bit0=In DDRA=(1<<DDA7) | (1<<DDA6) | (0<<DDA5) | (0<<DDA4) | (0<<DDA3) | (0<<DDA2) | (0<<DDA1) | (0<<DDA0); // State: Bit7=0 Bit6=0 Bit5=T Bit4=T Bit3=T Bit2=T Bit1=T Bit0=T PORTA=(0<<PORTA7) | (0<<PORTA6) | (0<<PORTA5) | (0<<PORTA4) | (0<<PORTA3) | (0<<PORTA2) | (0<<PORTA1) | (0<<PORTA0); // Port B initialization // Function: Bit3=In Bit2=Out Bit1=In Bit0=In DDRB=(0<<DDB3) | (1<<DDB2) | (0<<DDB1) | (0<<DDB0); // State: Bit3=T Bit2=0 Bit1=T Bit0=T PORTB=(0<<PORTB3) | (0<<PORTB2) | (0<<PORTB1) | (0<<PORTB0); // Timer/Counter 0 initialization // Clock source: System Clock // Clock value: 16000,000 kHz // Mode: Phase correct PWM top=0xFF // OC0A output: Non-Inverted PWM // OC0B output: Non-Inverted PWM // Timer Period: 0,031875 ms // Output Pulse(s): // OC0A Period: 0,031875 ms Width: 0 us // OC0B Period: 0,031875 ms Width: 0 us TCCR0A=(1<<COM0A1) | (0<<COM0A0) | (1<<COM0B1) | (0<<COM0B0) | (0<<WGM01) | (1<<WGM00); TCCR0B=(0<<WGM02) | (0<<CS02) | (0<<CS01) | (1<<CS00); TCNT0=0x00; OCR0A=0x00; OCR0B=0x00; // Timer/Counter 1 initialization // Clock source: System Clock // Clock value: 16000,000 kHz // Mode: Ph. correct PWM top=0x00FF // OC1A output: Non-Inverted PWM // OC1B output: Disconnected // Noise Canceler: Off // Input Capture on Falling Edge // Timer Period: 0,031875 ms // Output Pulse(s): // OC1A Period: 0,031875 ms Width: 0 us // Timer1 Overflow Interrupt: Off // Input Capture Interrupt: Off // Compare A Match Interrupt: Off // Compare B Match Interrupt: Off TCCR1A=(1<<COM1A1) | (0<<COM1A0) | (0<<COM1B1) | (0<<COM1B0) | (0<<WGM11) | (1<<WGM10); TCCR1B=(0<<ICNC1) | (0<<ICES1) | (0<<WGM13) | (0<<WGM12) | (0<<CS12) | (0<<CS11) | (1<<CS10); TCNT1H=0x00; TCNT1L=0x00; ICR1H=0x00; ICR1L=0x00; OCR1AH=0x00; OCR1AL=0x00; OCR1BH=0x00; OCR1BL=0x00; // Timer/Counter 0 Interrupt(s) initialization TIMSK0=(0<<OCIE0B) | (0<<OCIE0A) | (0<<TOIE0); // Timer/Counter 1 Interrupt(s) initialization TIMSK1=(0<<ICIE1) | (0<<OCIE1B) | (0<<OCIE1A) | (0<<TOIE1); // External Interrupt(s) initialization // INT0: Off // Interrupt on any change on pins PCINT0-7: Off // Interrupt on any change on pins PCINT8-11: Off MCUCR=(0<<ISC01) | (0<<ISC00); GIMSK=(0<<INT0) | (0<<PCIE1) | (0<<PCIE0); // USI initialization // Mode: Disabled // Clock source: Register & Counter=no clk. // USI Counter Overflow Interrupt: Off USICR=(0<<USISIE) | (0<<USIOIE) | (0<<USIWM1) | (0<<USIWM0) | (0<<USICS1) | (0<<USICS0) | (0<<USICLK) | (0<<USITC); // Analog Comparator initialization // Analog Comparator: Off // The Analog Comparator's positive input is // connected to the AIN0 pin // The Analog Comparator's negative input is // connected to the AIN1 pin ACSR=(1<<ACD) | (0<<ACBG) | (0<<ACO) | (0<<ACI) | (0<<ACIE) | (0<<ACIC) | (0<<ACIS1) | (0<<ACIS0); ADCSRB=(0<<ACME); // Digital input buffer on AIN0: On // Digital input buffer on AIN1: On DIDR0=(0<<ADC1D) | (0<<ADC2D); // ADC initialization // ADC disabled ADCSRA=(0<<ADEN) | (0<<ADSC) | (0<<ADATE) | (0<<ADIF) | (0<<ADIE) | (0<<ADPS2) | (0<<ADPS1) | (0<<ADPS0); unsigned char VL_OCR0A = 0, VL_OCR0B = 0, VL_OCR1A = 0; OCR0A = 0; OCR0B = 0; OCR1A = 0; while(1) { _delay_ms( 100 ); VL_OCR0A = VL_OCR0A + 1; VL_OCR0B = VL_OCR0B + 1; VL_OCR1A = VL_OCR1A + 1; if( VL_OCR0A >= 250 ){ VL_OCR0A = 0; } if( VL_OCR0B >= 250 ){ VL_OCR0B = 0; } if( VL_OCR1A >= 250 ){ VL_OCR1A = 0; } OCR0A = VL_OCR0A; OCR0B = VL_OCR0B; OCR1A = VL_OCR1A; } } Т.е. если указать задержку в начале цикла, то светодиод не светится вообще.
      Если задержку убрать - светодиод немного подсвечивает всеми цветами.
      while(1) { _delay_ms( 100 ); // <--- ЗАДЕРЖКА --- VL_OCR0A = VL_OCR0A + 1; VL_OCR0B = VL_OCR0B + 1; VL_OCR1A = VL_OCR1A + 1; if( VL_OCR0A >= 250 ){ VL_OCR0A = 0; } if( VL_OCR0B >= 250 ){ VL_OCR0B = 0; } if( VL_OCR1A >= 250 ){ VL_OCR1A = 0; } OCR0A = VL_OCR0A; OCR0B = VL_OCR0B; OCR1A = VL_OCR1A; } Где я накосячил?
      З.Ы.: Замечаний по поводу оптимизации кода, излишних переменных и п.р. прошу не писать - изощряюсь как могу ибо не пойму почему не работает
    • Guest Денис
      By Guest Денис
      В общем, есть такое чудо китайской техники (фото)
      Что оно может:
      1. Заряжаться через microUSB порт
      2. Кнопка вкл/выкл, она же переключает режимы
      3. 3 режима свечения светодиода (он светит разными цветами)
      Что я хочу сделать:
      1. Пункты 1 и 2 выше
      2. Разнообразить количество режимов, переливание статичный цвет и тд...
      Вопрос: как это сделать? что купить?

      P.S. К сожалению, в гугле не нашел подробной инструкции, а я в электронике я дуб дубом


    • By Reptile
      Доброго времени суток. Пытаюсь восстановить работоспособность колонок Top Device TDE 261/2.1. Колонки не раз ремонтировалась по части УНЧ, при очередном ремонте по ошибке (одинаковые разъемы) с трансформатора было подано переменное питающее напряжение на входы (разъем AUX/MP3) аудиопроцессора PT2313L  (3,10,14 ноги - AGND, R_IN2 L_IN2). В результате чего выгорел сам аудиопроцессор PT2313L. PT2313L был заменен. Но колонка по прежнему не запускается. Как я понял, не запускается сам PT2313L, на его аудиовыходах (ноги 24, 25) сигнала нет. Передняя панель работает: индикация, кнопки, енкодер. Имеется подозрение, что вместе с процессором выгорели линии DATA и/или CLK на MCU, так как MCU и PT2313L соединены по этим линиям напрямую друг с другом. В МК и всей этой цифровой штуке не очень шарю, не знаю, как грамотно проверить работоспособность этой цифровой части, поэтому прошу помощи - Возможно ли какими-либо способами восстановить колонку или уже всё... 
      Из приборов, к сожалению, только мультиметр, осциллограф отсутствует.
      Ниже немного измерений.
      Напряжения на линиях: STD-BY-ждущий режим (в скобках рабочий режим):
      DATA - 2.31В (1.9В).
      CLK - 0.125В (0.135В).
      Сопротивление между выводами:
      CLK_MCU-DATA_MCU - 47 Ом. 
      CLK_MCU/DATA_MCU-GND - около 0.22 Ом и там и там. Звонится в обе стороны.
      Питание MCU 5В, (4.6В STD-BY-ждущий режим, 4.0В рабочий режим и со временем также почему-то может падать до 3.6В)
      MCU - не известен, нет маркировки. 18 Выводов, DIP.
      Ноги MCU, которые удалось опознать:
      1 - DATA
      18 - CLK
      3 - GND (?)
      5 - GND (?)
      ? - они соединены вместе
      14 - VCC
      17 - not used (n/a)
      15, 16 - OSC
      ET6202 - управление индикатором, Control LED drive circuit
      Фото плат (под сполером) и даташиты прилагаются.
      Схемы данных колонок не имеется. Все что удалось найти это схема чуть более старшей модели TDE280/2.1, с данными колонками она мало что общего имеет, лишь общий принцип, узлы довольно сильно отличаются, но прикреплю на всякий, для общей информации.
      PT2313L
      ET6202
      TDE280
       
    • By bustamax
      Привет хочу сделать лазерный проектор по типу элт монитора. Из vga разъёма выходят 2 Синала срочной и кадровой развёртки. Со строчной разобрался. Вопрос по кадровой. Она будет реализована с помощью гальванометра который после каждой строки отклоняет зеркало на какой то угол ( пускай строк 480 тогда если взять напряжение управления гальво от 0 до 10 вольт и шаг задать 0,01 в - будет 1000 строк) даже если строк будет 720 в 1000 они уместятся.
      Так вот принцип придумал такой - с выхода Hsync поступает сигнал строки - микросхема прибавляет пускай напряжение +0,01 вольт, затем поступает 2й сигнал от Hsync микросхема прибавляет ещё 0,01 вольт ( напряжение 0,02) наш гальво отклонился уже до 3й строки и так далее пока не поступит сигнал VSYNC о смене кадра - Гальво возвращается в 0.
      Хотя правильней вот так:
      Либо сделать что бы гальво двигался при отсутствии сигнала Hsync - скажем поступает сигнал строчной развёртки отрабатывает строчная развертка затем сигнал становится логическим 0 и тут срабатывает гальво и т.д пока не придёт сигнал от vsync (логическая 1).
       
      по факту схема даж считать не должна - есть сигнал прибавляем есть другой сигнал сбрасываем
       Я в электронике логический 0 но спаять по приведённой схеме смогу)
      если кто поможет спасибо
       
       
×
×
  • Create New...