16+
Четверг
13 декабря
Вход |Карта сайта | |Upload |codebook | PARTS

 О смысле всего сущего 0xFF

 Средства и методы разработки

 Мобильная и беспроводная связь

 Блошиный рынок Объявления

caxapa

Микроконтроллеры ARM 

AVR PIC MSP PLD,FPGA,DSP 

Кибернетика Технологии 

Схемы, платы, компоненты 

Микроконтроллеры AVR

 
   Новая тема Правила Регистрация Поиск »» Архив
Вернуться в конференциюТопик полностью
Точка опоры  (17.10.2015 23:45 - 18.10.2015 12:40, просмотров: 26024)
ЧЯДНТ с Си? 
Если оставить второй выделенный фрагмент, а не первый, то GCC выкидывает его и в xxx_freq остаются нули. ЧЯДНТ? P.S. Тэги <bold> не работают внутри блока <code>. Под выделенными фрагментами понимаются: sweep_freq = 0x218E; start_freq = 0x250B524;
#include	<avr\io.h>
#include	<avr\sleep.h>
#include	<avr\interrupt.h>

volatile uint8_t	sweep_counter;
uint16_t			timer;
uint32_t			start_freq, sweep_freq;
volatile uint32_t	act_freq;

ISR(TIMER1_OVF_vect)	{	// Прерывание по переполнению Timer1
	TCNT1 = timer;

	if (++sweep_counter == 0)
		act_freq = start_freq;	// reset frequency to new cycle

}


int main(void)	{

	sweep_counter = 0;
	TCCR1B = 2;		// Метки времени Fclk/nnn
	TIMSK |= _BV(TOIE1);	// Прерывания по переполнению (счёт времени)
	MCUCR	|= _BV(SE);		// IDLE mode

/*	sweep_freq = 0x218E;
	start_freq = 0x250B524;
*/	timer = 2700;
	sei();

    while(1)	{
		sweep_freq = 0x218E;
		start_freq = 0x250B524;

		sleep_cpu();
		act_freq += sweep_freq;
	}	
}
Главная | Карта сайта | О проекте | Проекты | Файлообменник | Регистрация | Вебмастер | RSS
Лето 7527 от сотворения мира. При использовании материалов сайта ссылка на caxapу обязательна.
MMI © MMXVIII