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

Вебинар "Разбор новых уникальных модулей FMAC и CORDIC в микроконтроллерах общего назначения STM32G4" (15.07.2020)

Компания КОМПЭЛ приглашает вас принять участие в вебинаре 15.07.2020, посвященном новому семейству микроконтроллеров общего назначения – STM32G4. Вебинар рассчитан на технических специалистов и тех, кто знаком с основами цифровой обработки сигналов. Мы разберем алгоритм работы CORDIC, а также рассмотрим пример создания цифрового фильтра на базе FMAC.

Зарегистрироваться на вебинар

Может так?


#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
                     

Новые контроллеры VIPerPLUS для ИП – видео и материалы вебинара STMicroelectronics

Видеозапись и материалы вебинара ST о семействе AC/DC регуляторов VIPerPLUS производства компании STMicroelectronics. Инженерами ST было детально рассмотрено новое семейство микросхем VIPerPLUS со встроенным транзистором, их возможности и топологии применения. Продемонстрировано испытание из лаборатории ST в Праге и моделирование в среде E-DesignSuite.

Подробнее

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

ADCSRA =134;

ACSR=128;

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

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

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

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

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


Ругался на отсутствие форматирования исходного кода (включая отсутствие осмысленных комментариев и наличие неубранного после конфигуратора мусора) не менее 15 раз.

Часть моих наработок.

Share this post


Link to post
Share on other sites
                     

Конденсаторы ECWFG от Panasonic: теперь и для высоковольтных применений

Компания Panasonic анонсировала существенное расширение серии пленочных конденсаторов ECWFG: на сегодняшний день диапазон рабочих напряжений серии составляет 630…1100 В (DC). Серия ECWFG поддерживает уникальную функцию микропредохранителей.

Подробнее

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  

×
×
  • Create New...