Перейти к содержанию

Включение И Отключение При Нажатии


cargo29

Рекомендуемые сообщения

смысл устройства такой 3 выхода, 3 входа тини13. 1 кнопка это один светодиод, при нажатии она отключает светодиод, если еще раз нажать ее она включает светодиод. набросок кода пока для одного порта


#include <avr/io.h>
#include <avr/eeprom.h>
#include <avr/delay.h>
char k_1 = 1;
int main(void)
{
DDRB = 0b00000111;
//PORTB = 0b00000111;

while(1)
{

if ((PINB & _BV(PB4))!=0){
//PORTB = 0b00000011;
if (k_1==1)
{
k_1 = 0;
PORTB = 0b00000001;
while((PINB & _BV(PB4))!=0);
}
else
{
k_1 = 1;
PORTB = 0b00000000;
while((PINB & _BV(PB4))!=0);
}

}

}
}

Один раз нажимаешь срабатывает когда нажимаешь еще раз то уже не работает.

еще вопросик

(PINB & _BV(PB4))==0 что этот символ дает в данном коде?

Схема что бы было понятнее как подключено

638386363328638358386.jpg

Изменено пользователем cargo29
Ссылка на комментарий
Поделиться на другие сайты

Реклама: ООО ТД Промэлектроника, ИНН: 6659197470, Тел: 8 (800) 1000-321

А как ты пишешь код если не знаешь как это делать? Этот символ обозначает взятие адреса. То есть ты считываешь, что находится по указанному адресу. В общем-схема полная лажа, код никудышный. Учи Си потом садись писать, а не наоборот. Должно быть как-то так.

bool trg_=true;

int main (void)

{

DDRB=0b11111000;

PORTB=0b00000111;

while(1)

{

if((PINB&(1<<PB0))==0)

{

trg_^=true;

if(trg_==true)PORTB&=~_BV(PB4);

else PORTB|=_BV(PB4);

while((PINB&(1<<PB0))==0);

};

};

};

- А совесть в курсе? - А совесть в доле! :-D

Эксперт — это человек, который совершил все возможные ошибки в некотором узком поле.

Все грамматические ошибки являются авторским стилем изложения материала.

Ссылка на комментарий
Поделиться на другие сайты

20% скидка на весь каталог электронных компонентов в ТМ Электроникс!

Акция "Лето ближе - цены ниже", успей сделать выгодные покупки!

Плюс весь апрель действует скидка 10% по промокоду APREL24 + 15% кэшбэк и бесплатная доставка!

Перейти на страницу акции

Реклама: ООО ТМ ЭЛЕКТРОНИКС, ИНН: 7806548420, info@tmelectronics.ru, +7(812)4094849

Если так хочется сэкономить резисторы, то нужно включить внутреннюю подтяжку (pull-up) на управляющих входах, а кнопки на землю. А сейчас на входах непонятно что.

Никогда не спорьте с дураком - люди могут не заметить между вами разницы

Ссылка на комментарий
Поделиться на другие сайты

Выбираем схему BMS для корректной работы литий-железофосфатных (LiFePO4) аккумуляторов

 Обязательным условием долгой и стабильной работы Li-FePO4-аккумуляторов, в том числе и производства EVE Energy, является применение специализированных BMS-микросхем. Литий-железофосфатные АКБ отличаются такими характеристиками, как высокая многократность циклов заряда-разряда, безопасность, возможность быстрой зарядки, устойчивость к буферному режиму работы и приемлемая стоимость. Но для этих АКБ, также как и для других, очень важен контроль процесса заряда и разряда, а специализированных микросхем для этого вида аккумуляторов не так много. Инженеры КОМПЭЛ подготовили список имеющихся микросхем и возможных решений от разных производителей. Подробнее>>

Реклама: АО КОМПЭЛ, ИНН: 7713005406, ОГРН: 1027700032161

Схема "шлак". Зачем светодиоды подключать через транзистор? Достаточно одного резистора будет. Можно подключить светодиод анодом к минусу(будет меньшая нагрузка на МК).Если надо могу набросать кодик для Codevision(потом можно переделать под другую среду, главное понять смысл).

Минин Андрей. Обращайтесь за помощью.

Ссылка на комментарий
Поделиться на другие сайты

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

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

Ссылка на комментарий
Поделиться на другие сайты

анодом к минусу
Да неужели?

> Правила форума <

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

...это не дым от канифоли, нет... это души умерших транзисторов....

Первый закон Ома: никому не рассказывать про Ома!

Ну вот, а ты говорил ноль...

Ссылка на комментарий
Поделиться на другие сайты

да совсем забыл, как кнопки лучше расположить на управление? прерывание на - не получится остальные так же сработают

при такой схеме включении будут срабатывать все кнопки http://forum.cxem.net/index.php?showtopic=124786&st=20

Ссылка на комментарий
Поделиться на другие сайты

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

Вы из-за каждой неверно поставленной точки на форум обращаетесь, вместо того, чтобы мозгами пораскинуть или хотя бы одну книжку или статью на соответствующую тему прочитать. Поддерживаю Rhime. По фразе "полюбому скажет прочитал много статей умных книг" , делаю вывод, что для Вас это подвиг, и Вы других пытаетесь под себя равнять. Вы сами то подумайте, откуда ещё взять информацию, кроме как не из книги или статьи? Те кто Вам на вопросы отвечают, получили инфу именно таким образом по большей части.

*И что в книжечке то плохого? Она содержит сразу всю необходимую информацию. И слова против не скажет, если её мусолить постоянно. И скорость развития намного быстрее, чем по три часа на форуме ждать, пока скажут куда точку передвинуть.

**вот после такого "учения от опыта" получается соответствующий сорт кода.

Изменено пользователем tcoder
Ссылка на комментарий
Поделиться на другие сайты

Вопрос не по теме, кто нибудь заказывал детали с ebay? за какое время доходили?
http://forum.cxem.net/index.php?showtopic=119900

> Правила форума <

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

...это не дым от канифоли, нет... это души умерших транзисторов....

Первый закон Ома: никому не рассказывать про Ома!

Ну вот, а ты говорил ноль...

Ссылка на комментарий
Поделиться на другие сайты

Вот такой кодик набросал для одного светодиода. Рабочий 100%. Я бы взял мк с бОльшим кол-вом ножек,например тини2313,потому что тут придется настраивать каждый порт отдельно.

#include <tiny13.h>
#include <delay.h>
void main(void){
unsigned char i=1; // вводим переменную для счета
PORTB.0=0x00;//Пин в 0
DDRB.0=0xFF; // Пин на выход
DDRB.3=0x00;// Пин на ввод
PORTB.3 = 0xFF ;//Пин в 1

while (1) {
if (PINB.3==0){
i=i+1;
delay_ms(50);//антидребезг
}
switch(i) {
case 1: {
PORTB.0=0;
break;
}
case 2:{
PORTB.0=1;
break;
}	
default:
i=1;

}
}
	 }

По первому нажатию кнопки светодиод горит, по второму-тухнет.(По этому коду: кнопка на PORTB.3, светодиод на PORTB.0)

Изменено пользователем Radiotehnika S-90

Минин Андрей. Обращайтесь за помощью.

Ссылка на комментарий
Поделиться на другие сайты

Radiotehnika S-90 спасибо за код, уточню немного кнопка как работает, на прерывание на минус? на счет мк с большим количеством портов думал, дело в том что у меня их трудно достать заказ идет тини13 и то с китая (не знаю дойдет или нет) суть будет такая, мне нужно будет отключать и включать парные каналы УФМЗ но раз он мощный поэтому буду делать через транзистор. (в виде ключа, в обрыв питания). tcoder я с тобой не соглашусь, у меня книги по делфи валяются (библия делфи и много других) в них все одно и тоже написано, только объясняют по разному, ничего нового в другой книге я и не узнал то, что уже знал со статей в интернете, а их как известно, очень много по делфи, так же и учил остальные языки программирования, форумы статьи, сидел и разбирался в коде а не книжки читал потому, что знал что в книгах для общего пользования написано, что есть в статьях, которых мало по написанию кода на мк

я надеюсь не такая схема включения кнопки (в конце статьи )http://forum.cxem.net/index.php?showtopic=124786&st=20

Ссылка на комментарий
Поделиться на другие сайты

А зачем покупать или скачивать кучу книг про одно и то же? :) Вы купите/скачайте одну книгу непосредственно по той среде, в которой сейчас работаете. Чтобы не было вопросов типа "а что этот символ обозначает" :) И причём тут делфи вообще, Вы сейчас не на делфи же пишете? "дЭлфийские" знания тут не помогут... А поскольку ещё имеются проблемы с алгоритмизацией, то вероятно и чтение сишной книги не сразу поможет :yes:

Ссылка на комментарий
Поделиться на другие сайты

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

Radiotehnika S-90 вот в этом и проблема с такой схемой включения я писал в другой теме, а тут будет 3 кнопки и нужно сделать их независимые друг от друга. :unsure: а при такой схеме одну нажмешь все сработают, я уже чувствую что легче взять мк с 3 разными портами тогда можно осуществить, все равно спасибо за помощь и код. Не по теме, реально ли осуществить регулятор ВЧ НЧ ? хватит ли скорости обработки ?

Ссылка на комментарий
Поделиться на другие сайты

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

#include <tiny13.h>
#include <delay.h>
void main(void){
unsigned char i=1;
unsigned char c=1; // вводим переменную для счета
PORTB.0=0x00;//Пин в 0
DDRB.0=0xFF; // Пин на выход
DDRB.3=0x00;// Пин на ввод
PORTB.3 = 0xFF ;//Пин в 1
PORTB.1=0x00;//Пин в 0
DDRB.1=0xFF; // Пин на выход
DDRB.4=0x00;// Пин на ввод
PORTB.4 = 0xFF ;//Пин в 1


while (1) {
if (PINB.3==0){
i=i+1;
delay_ms(50);//антидребезг
}
switch(i) {
case 1: {
PORTB.0=0;
break;
}
case 2:{
PORTB.0=1;
break;
}
default:
i=1;

}
if (PINB.4==0){
c=c+1;
delay_ms(50);//антидребезг
}
switch© {
case 1: {
PORTB.1=0;
break;
}
case 2:{
PORTB.1=1;
break;
}
default:
c=1;

}
}

}

В протеусе все работает замечательно.

Минин Андрей. Обращайтесь за помощью.

Ссылка на комментарий
Поделиться на другие сайты

Подскажи еще в твоем коде

PORTB.0=0x00;//Пин в 0. вход
DDRB.0=0xFF; // Пин на выход. иницилиализация порта на выход
DDRB.3=0x00;// Пин на ввод. иницилиализация порта на вход
PORTB.3 = 0xFF ;//Пин в 1 . выход

почему в таком порядке или без разницы это?

Ссылка на комментарий
Поделиться на другие сайты

cargo29,

ты бы хоть одну мигалку с нуля сам написал

Ты ведь по и-нету какие-то обрывки собираешь и у тебя всё в голове перемешалось.

в репу каждому, кто отсылает в гугл !!

Ссылка на комментарий
Поделиться на другие сайты

Radiotehnika S-90 Пробовал вставить код ошибки почти на все. #include <tiny13.h> этот файл не может найти и на все DDRB.3 типа таких где используется через точку указания вывода походит на язык С++

Ссылка на комментарий
Поделиться на другие сайты

cargo29, Вы точно обрывки собираете, как 8244 сказал.

Никаким C++ тут и не пахнет. Radiotehnika S-90 дал Вам код для CvAVR, там всё верно. У Вас AvrStudio (как я понял). Там синтаксис языка немного отличается.

Вам надо просто убрать этот include , а взамен

DDRB.3=0x00;// Пин на ввод

написать DDRB &= 0xF7;

Откуда взялось эта команда и волшебное число 0xF7, я не скажу из принципа. Сами подумайте. Иначе никогда ничего не поймёте.

Ссылка на комментарий
Поделиться на другие сайты

Если надо могу набросать кодик для Codevision(потом можно переделать под другую среду, главное понять смысл).

cargo29, сообщения вообще не читаем?Вас интересует только огрызок кода, а то что люди пишут нет?

Каждая среда разработки имеет свой синтаксис написания кода.

Минин Андрей. Обращайтесь за помощью.

Ссылка на комментарий
Поделиться на другие сайты

Присоединяйтесь к обсуждению

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

Гость
Unfortunately, your content contains terms that we do not allow. Please edit your content to remove the highlighted words below.
Ответить в этой теме...

×   Вставлено с форматированием.   Восстановить форматирование

  Разрешено использовать не более 75 эмодзи.

×   Ваша ссылка была автоматически встроена.   Отображать как обычную ссылку

×   Ваш предыдущий контент был восстановлен.   Очистить редактор

×   Вы не можете вставлять изображения напрямую. Загружайте или вставляйте изображения по ссылке.

Загрузка...
  • Последние посетители   0 пользователей онлайн

    • Ни одного зарегистрированного пользователя не просматривает данную страницу
  • Сообщения

    • Зачем же пугать человека? Он же правильно мыслит. Вопрос чтобы правильно все сделал. Гальванику...
    • Вероятно, в разделе "Работа" вам помогут. При условии предоставления чёткого и недвусмысленного технического задания.
    • Привет кто это еще читает. Знакомый купил в Москве по адекватной цене пару  B615D, дал на диагностику перед уверенной эксплуатацией. Одна сразу в защите, большой динамик спален, усилители на высокоомную нагрузку поют, буду позже разбираться. А вот вроде бы вполне работоспособная не сдюжила и 10 минут на хорошей мощности на плотном прогрессиве. Вылетели ключи в БП и драйвера на MMBTA56. Видно что был в ремонте, возможно ключи оказались палёнкой. Есть мысль впаять вместо FQPF13N50  чуток помощней по току 18N50-e. По параметру Qg аналогичные, а по  Сg будут потяжелей, 2350пф против 1800 у 13н50-х. 
    • Ну так теперь фигня вопрос. Проверить, что кнопки невозможно замкнуть одновременно, да определить, на какой ток транзисторы нужны. По характеристикам мотора или по максимально-допустимому току диодов D1-D4. Навскидку, моторчик низковольтный, диоды тоже. Транзисторы тогда на PBSS4350 можно заменить. Они на Али почти задаром продаются.
    • Сами же понимаете, что так не может быть. Или нет "сквозняка", или схема неправильно собрана, элементы не те, битые и пр., и схема защиты не работает. Проверьте сначала работу защёлки защиты при питании от 15 В, отпаяв R19 и подавая туда медленно увеличивающееся напряжение до 1,5 - 2 В (можно с потенциометра ом на 100-500). Добейтесь, чтобы работала. Порог срабатывания измерьте. Пересчитайте в ток через резистор 0,1 Ом. Соответствует ли "правильному"? Проверьте, что у этого резистора сопротивление действительно 0,1 Ом. Запаяйте 0,1 Ом обратно. Напишите, какая лампочка. А то мало ли какая, может она не от "сквозняка", а от броска тока заряда С18 С16 мигает. Транзисторы ключей проверьте. Впаяйте вместо первичной трансформатора резистор ом 150 - 300, чтобы ток с ключей в этот "эквивалент трансформатора" не больше 50-100 мА был. Посмотрите форму напряжения на выходе ключей, в точке соединения С16 и С18, на питании после лампочки. Ищите, где ляп. Умозрительно подсказать можно только по каким-то измеренным данным. Кроме вас никто их не добудет. В общем, как в анекдоте: - Молодой человек, ну делайте же уже хоть что-нибудь!
    • Ну так можно увеличить глубину ООС, тем самым понизив чувствительность и повысив линейность
    • Судя по этой картинке   в трухе передней панели под выступающие болты и шишки паек ЗК динамиков выковыряныфрезерованы выемки, иначе бы динамики так плотно не прилегали бы к ДВП.    А оно тебе надо? "Работает - не мешай"(с)/это уже аксиома, не требующая доказательств/ , пытаясь сделать лучше, чем сделано на заводе. Сanton-ят, т.е. поют, и лучше, чем есть, тебе не сделать. Ну перенесёшь ты динамики наружу, а что тебе это даст? Кроме того, что при попытке их продать(а продавать их когда-нибудь придётся, т.к. эта акустика бюджетного сегмента без потуг на высший класс Hi-Fi) , тебе придётся объяснять потенциальному покупателю причину, по которой какой-то умник заколхозил такую переделку с акустикой, ты ничего хорошего не получишь. Задуманная тобой переделка - это по сути возня ради возни. 
×
×
  • Создать...