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

Atmega 8 не работает программа


3d_killer

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

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

IMG_20161228_215813.jpg

2016-12-28_21-59-22.png

2016-12-28_21-59-33.png

2016-12-28_21-59-49.png

IMG_20161228_220351.jpg

а не видать сопротивления перепутал большие поставил

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

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

Приветствую! Если F_CPU от внешнего RC генератора, fuse low byte равно 0xC8;

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

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

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

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

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

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

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

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

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

хотя нет не работает

 

3 минуты назад, DmitryS сказал:

А , где настройки портов на выход  ? У вас все порты на вход настроены , с подтягивающими резисторами .

а как их настраивать

1,2 лапка идут на базы транзисторов это порты PD3 и PD4

DDRD |= 1 << 3;
    DDRD |= 1 << 4;

эаработало, спасибо натолкнул

Но что-то щелкает очень быстро даже так:

#define F_CPU 8000000UL
#include <avr/io.h>
#include <avr/delay.h>


int main(void)
{
	DDRD |= 1 << 3;
	DDRD |= 1 << 4;
	PORTD |=(1<<3);
	//PORTD |=(1<<4);
	
    /* Replace with your application code */
    while (1) 
    {
		_delay_ms(8000);
		PORTD ^=(1<<3);
		//PORTD ^=(1<<4);
		
    }
}

 

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

#include <avr/io.h>
#define F_CPU 8000000UL
#include <util/delay.h>


int main(void)
{
	DDRD |=(1<<4);	
    /* Replace with your application code */
    while (1) 
    {
		_delay_ms(1000);
		PORTD ^=(1<<4);
		
    }
}

Так не работает

если добавляю перед циклом PORTD |=(1<<4);

то щелкает раз 10 в секунду

что то как то странно что без этого не работает и почему так быстро щелкает

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

после знака "=" нужен пробел , как мне кажется .  если все равно работает быстрее , то смотрите фузы .

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

блин чтож за ерунда

/*
 * GccApplication4.c
 *
 * Created: 28.12.2016 21:30:21
 * Author : user
 */ 
#include <avr/io.h>
#define F_CPU 8000000UL
#include <util/delay.h>


int main(void)
{
	DDRD |= (1 << 4);
	PORTD |= (1<<4);
	
    /* Replace with your application code */
    while (1) 
    {
		_delay_ms(1000);
		PORTD ^= (1<<4);
		
    }
}

программа работает только так, но очень быстро меняю задержку 0 толку

2016-12-28_22-56-18.png

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

попробовал такую программу:

#define F_CPU 8000000UL

#include <avr/io.h>
#include <util/delay.h>

int main(void)
{
	DDRD |= (1<<3);

	while(1)
	{
		PORTD |= (1<<3);  // включаем
		_delay_ms(1000);  // ждём 1000мс
		//PORTD &= ~(1<<3); // выключаем
		_delay_ms(1000); // ждём 1000мс
	}
}

И релюха щелкает!!! как такое возможно???

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

Цитата

void _delay_ms(double __ms)

Perform a delay of __ms milliseconds, using _delay_loop_2().

The macro F_CPU is supposed to be defined to a constant defining the CPU clock frequency (in Hertz).

The maximal possible delay is 262.14 ms / F_CPU in MHz.

When the user request delay which exceed the maximum possible one, _delay_ms() provides a decreased resolution functionality. In this mode _delay_ms() will work with a resolution of 1/10 ms, providing delays up to 6.5535 seconds (independent from CPU frequency). The user will not be informed about decreased resolution.

максимальная пауза - 262.14 мс, если параметр больше - функция работает с разрешением 1/10 мс, соответственно _delay_ms(1000) даст паузу в 100,0 мс

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

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

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

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

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

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

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

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

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

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

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