3d_killer

Не работает задержка

7 сообщений в этой теме

3d_killer    3

Написал простую прогу в атмел студио, чип ATMEGA128, фьюзы прошиты на 16 мгц и стоит кварц

/*
 * GccApplication1.c
 *
 * Created: 05.10.2017 18:57:56
 * Author : user
 */ 
#define  F_CPU 16000000UL
#include <avr/io.h>
#include <util/delay.h>
int main(void)
{
	DDRC |= 1>>0;
	PORTC &= ~(1>>0);
    /* Replace with your application code */
    while (1) 
    {
		PORTC |= (1>>0);
		_delay_ms(10000);
		PORTC &= ~(1>>0);
		_delay_ms(10000);
    }
}

светодиод замигал но очень быстро, как будто F_CPU 1мгц, отчего это может быть?

Поделиться сообщением


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

Быстрый заказ печатных плат

Полный цикл производства PCB по низким ценам!

  • x
    мм
Заказать Получить купон на $5.00
Viktor26    300

Значит с фьюзами что-то не то, другого не дано

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах
BARS_    531
2 часа назад, 3d_killer сказал:

фьюзы прошиты на 16 мгц и стоит кварц

А когда проект создавал, какую частоту указал?

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах
3d_killer    3

я нашел ошибку, был включен сторожевой таймер, он ребутил МК

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах
demiurg1978    19
	DDRC |= (1>>0);
	PORTC &= (~(1>>0));
    /* Replace with your application code */
    while (1) 
    {
		PORTC ^= (1>>0);
		_delay_ms(10000);
    }

1 - У операторов есть так называемая приоритетность, поэтому, чтобы в дальнейшем не париться, оборачивайте операции в скобки. Иначе, когда-нибудь поймаете трудноопределяемую ошибку.

2 - Настало время программных таймеров. Максимальное время сработки сторожевого таймера 2 секунды. А у вас на 10 секунд delay мк вешает.

Поделиться сообщением


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

Создайте аккаунт или войдите в него для комментирования

Вы должны быть пользователем, чтобы оставить комментарий

Создать аккаунт

Зарегистрируйтесь для получения аккаунта. Это просто!

Зарегистрировать аккаунт

Войти

Уже зарегистрированы? Войдите здесь.

Войти сейчас