Sign in to follow this  
stells47

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

6 posts in this topic

stells47    0

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

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

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

ATTINY13

 

Share this post


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

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

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

Share this post


Link to post
Share on other sites
stells47    0

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

Share this post


Link to post
Share on other sites

Приглашаем на вебинар «Создание беспроводных устройств на системах-на-кристалле семейства SimpleLink компании TI»

Компания Компэл, совместно с Texas Instruments приглашают 26 июня принять участие в вебинаре, где инженер по применению беспроводных технологий компании TI расскажет, как на новых беспроводных системах можно реализовать несколько полезнейших в повседневной жизни функций для ваших устройств. С развитием элементной базы TI становится возможной реализация более удобных, функциональных и безопасных систем, недоступных ранее. Вебинар проводит инженер по применению беспроводных технологий в TI Мари Хернес(будет дублированный перевод).

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

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
COKPOWEHEU    273
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

Видео вебинара «Уникальный подход MORNSUN к разработке DC/DC-преобразователей. Что на выходе?»

На сайте КОМПЭЛ доступны материалы вебинара, посвященные последнему поколению DC/DC преобразователей с фиксированным входом R3 от MORNSUN. Вы можете посмотреть видеозапись, ознакомиться с презентацией и ответами на вопросы.

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

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now

Sign in to follow this  

  • Сообщения

    • что касается цифр. я всего лишь озвучил показания мультиметра
    • Всем здравствуйте!!! Итак начнем. Основа усилителя - схема В.Шушурина из радио №6 1978, путем многих модернизаций и переходе на новую элементную базу  схема приняла вид неузнаваемости поэтому переехала сюда. Итак УМЗЧ с выходной мощностью 100Вт/4Ом рекомендуемый диапазон питающих напряжений +/-28...+/-38В Схема, вид собранной платы, предварительный спектр 
    • Как итог: было 2 пробитых полевика в 2х каналах, так же в третьем канале был сгоревший "ОУ", после выпаивания этих деталей, остальные каналы заработали в штатном режиме.  хотел сказать отдельное спасибо @KRAB, за то что пинал в нужном направлении. Буду теперь искать чем заменить сгоревшие детали.
    • немного отредактировал схему  - убрал разрядный диод -поставил резистор для кондея С6 ,добавил нагрузочный R12 на всяких пожарный) увеличил R4-5 -вроде получше будет для 740 транзистора ,подтянул С6 насколько было возможность - убирать не хочу -может убавит пулсации на выходе,имхо,добавил еще один разрядный резистор на емкость 100 мкф ,печатку тоже немного поправил - есть замечание? 
    • Фокус почти удался
    • Нет, оно не так работает. Там стоит мелкий конденсатор, который поддерживает открытым транзистор. А транзистор держит включенным реле. Магнитолу питать он не будет. Так что либо ставить нормальный АКБ, либо вешать конденсаторы на магнитолу. Либо, как вариант, можешь протянуть провод прямо от клеммы АКБ. Там просадка напряжения будет меньше, чем в проводке машины.