Jump to content
Sign in to follow this  
stells47

ошибка в коде или компилятор?

Recommended Posts

Здравствуйте.

Неправильно работает простейший код,светодиод на PB4 должен гаснуть с задержкой,а загораться без задержки,от напряжение на PB2.

Но включается и выключается с одинаковой задержкой.Почему так?GccApplication1.c

ATTINY13

 

Share this post


Link to post
Share on other sites
3 часа назад, stells47 сказал:

включается и выключается с одинаковой задержкой.Почему так?

Потому что pwr_off за скобкой If.

Share this post


Link to post
Share on other sites

Спасибо.Сразу не заметил.Заработало,только наоборот=гаснет без задержки.

Share this post


Link to post
Share on other sites

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

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

Подробнее

Posted (edited)

Может так?


#define F_CPU 4800000
#include <avr/io.h>
#include <util/delay.h>
#define PWR_ON PORTB|=(1<<4)
#define PWR_OFF PORTB&=(~(1<<4))
#define PAUSE 10000 // пауза на выключение в миллисекундах, максимум 32000
int delayOff = 0;

ADC_init()
{
	ADMUX=1;
	ADCSRA =134;
	ACSR=128;
}

int main(void)
{
	DDRB|=(1<<4);
	ADC_init();
	
    while(1)
    {
       ADCSRA|=(1<<ADSC);
	   while (! (ADCSRA & (1<<4))) 
	    if(ADCW > 450)
		{
			_delay_ms(1);
			if (delayOff < PAUSE) delayOff++;
			if (delayOff >= PAUSE)
			{
				PWR_OFF;
			}
		} else 
		{
			if (ADCW < 400) 
			{
				PWR_ON;
				delayOff = 0;
			}
		}
    }
}

 

Edited by Павел Бачурин
ошибка

Share this post


Link to post
Share on other sites
13 часа назад, Павел Бачурин сказал:

ADCSRA =134;

ACSR=128;

while (! (ADCSRA & (1<<4)))

за такое - по рукам бить. Для кого придумали именованные биты

13 часа назад, Павел Бачурин сказал:

#define PAUSE 10000 // пауза на выключение в миллисекундах, максимум 32000

Почему именно 32000? На первый взгляд логичнее выглядит ограничение 65535 или 32767 или INT_MAX

Share this post


Link to post
Share on other sites
                     

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

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

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

Join the conversation

You can post now and register later. 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...
Sign in to follow this  

  • Сообщения

    • Обычно ЗУ для телефонов выполнены по схеме обратноходового преобразователя, который принципиально не боится перегрузки. Просто уменьшается выходное напряжение и время заряда увеличивается. Но имеет место быть вопрос качества и "запаса прочности" у применённых в ЗУ деталей. Т.е. некоторые зарядники даже и своих паспортных значений выдать не в состоянии.
    • Проблема решена. Причина была в  пробитом q409. Выражаю огромную благодарность Dima323 за грамотную и развернутую помощь!
    • Ок. СПС. Получилось.   По третьей осциллограмме, со всплесками на фронтах.  Это можно исправить?
    • Так чем все закончилось?
    • А это позволяет понять разницу. Если выпрямительный мостик КЦ это элементарная "радиодеталь" то его возможности ограничены оговоренными производителем параметрами. Может пропустить и больший ток, но, как говорят, недолго.  Будет сильно греться, возможно быстро сгорит, а возможно и не очень быстро. Если прикрутить его к алюминиевой пластине.  ИБП совсем другое дело. В подавляющем большинстве случаев там используется специализированная микросхема, которая "следит" за нагрузкой.  Скорее всего можно предположить, что если это блок питания, то придя к выводу, что невозможно обеспечить требуемое стабильное напряжение, микросхема уходит в защиту и блокирует работу при перегрузке как если бы было короткое замыкание. Если же это зарядное устройство, то оно скорее всего ограничивает зарядный ток своими возможностями и время полной зарядки увеличится и будет длиться не до 3 часов ночи, а до пяти. Но зато получите лайк от аккумулятора.   По УГО тут как раз много вопросов. Если проигнорили, значит наверное если закрыть глаза на разные неточности и несоответствия, то все правильно.
    • Какие должны быть параметры катушек? Не могу настроить в резонанс КТ-шники, меряю детекторным волнометром присоединяясь к коллектору транзисторов, с BFG135 выходной сигнал на 50% стрелка отклоняется, на КТ920А тоже самое показывает, а с КТ920В вообще 25-30%, при этом схема жрёт полтора ампера Ещё у меня подстроечники 4/15, на большую ёмкость не нашлось Настройка 106МГц, антенна диполь, длинна штырей 70см, если уменьшаю или увеличиваю мощность на выходе падает, на каких то частотах бывает приподнимается и снова падает
    • С такими запросами (50 Вольт, 10 Ампер) вам так легко не отделаться. Закладывайтесь сразу на огромный чемодан с кучей транзисторов, радиаторов и вентиляторов. З.ы. И упоминание творчества Касьяна здесь считается дурным тоном.
×
×
  • Create New...