Функция micros()

Yer
Offline
Зарегистрирован: 12.02.2016

Как работает функция micros()

andycat
andycat аватар
Offline
Зарегистрирован: 07.09.2017
DIYMan
DIYMan аватар
Offline
Зарегистрирован: 23.11.2015

Yer пишет:
Как работает функция micros()

Вроде хорошо работает, пока никто не жаловался.

Jeka_M
Jeka_M аватар
Offline
Зарегистрирован: 06.07.2014

Yer пишет:
Как работает функция micros()

Так же, как и millis()

Yer
Offline
Зарегистрирован: 12.02.2016

В атмел студио, хотел написать код.запускаю таймер с предделителем 64, частота мк 16МГц. 1 такт составляет 4мкс. Каждый раз присвоении tcnt счетчика умнажаю на 4.теперь как обнулить счетчик таймера

ЕвгенийП
ЕвгенийП аватар
Offline
Зарегистрирован: 25.05.2015

Yer пишет:
Каждый раз присвоении tcnt счетчика умнажаю на 4.
Чего Вы делаете? Немедленно выбросьте каку!  "Умнажает" он! Вы ещё логарифм в прерывании считайте! Голову то надо с собой носить, а не бросать где попало!

Yer
Offline
Зарегистрирован: 12.02.2016

Спасибо за совет

b707
Offline
Зарегистрирован: 26.05.2017

Yer пишет:
теперь как обнулить счетчик таймера

Если у вас возникают такие вопросы - значит вы нифига не понимаете в таймерах.

Правильный ответ - обнулять не нужно вовсе.

Yer
Offline
Зарегистрирован: 12.02.2016

если присваевать значение счетчика к uint_8   типу оно заполнится и что будет, думаю тут сидять более умные люди чем вы. конечно если вы поняли   

ЕвгенийП
ЕвгенийП аватар
Offline
Зарегистрирован: 25.05.2015

Yer пишет:

если присваевать значение счетчика к uint_8   типу оно заполнится и что будет, думаю тут сидять более умные люди чем вы. конечно если вы поняли   

Само собой, тут сидят более умные люди, чем мы с b707, именно поэтому они Ваш бред вообще комментировать не стали - это мы - дурачки.

DIYMan
DIYMan аватар
Offline
Зарегистрирован: 23.11.2015

Yer пишет:

если присваевать значение счетчика к uint_8   типу оно заполнится и что будет, думаю тут сидять более умные люди чем вы. конечно если вы поняли   

Как заполнится - у него юшка через край польётся. Мсье б почитать про переполнение, хотя бы вполглазика...

trembo
trembo аватар
Offline
Зарегистрирован: 08.04.2011

Jeka_M пишет:

Yer пишет:
Как работает функция micros()

Так же, как и millis()


Только в 1000 раз быстрее....

DIYMan
DIYMan аватар
Offline
Зарегистрирован: 23.11.2015

Yer пишет:

если присваевать значение счетчика к uint_8   типу оно заполнится и что будет, думаю тут сидять более умные люди чем вы. конечно если вы поняли   

Не поленись - скомпилируй этот скетч, открой монитор порта и любуйся:


void setup()
{
 Serial.begin(9600);

 uint8_t counter = 0;

 for(int i=0;i<500;i++)
 {
  Serial.println(++counter); 
  delay(50);
 }
}

void loop() {}

И постарайся осознать, что происходит.

Arhat109-2
Offline
Зарегистрирован: 24.09.2015

Yer, Вы бы код, для начала, выложили .. станет яснее что Вы там и кому присваиваете и чего опасаетесь .. а так кроме стеба, ваши сумбурные сообщения ни к чему не приводят. Впрочем, Вы уже и сами доперли.

Yer
Offline
Зарегистрирован: 12.02.2016
#include <avr/io.h>
#include <avr/interrupt.h>
volatile uint32_t interval=0;
volatile uint32_t T=0;
unsigned char d,d1;
volatile int d2,T2;

int main(void)
{  	//****timer1*******
	 TCCR1B |= (1<<CS10)|(1<<CS11); // CLK/64
		TCNT1=0;
	//********************
		DDRB |=(1<<PB5);
	PORTB &=~(1<<PB5);
	asm("sei");
    while(1)
    {
    asm("cli");
	T=TCNT1;
	T=T*4;
	if (T-interval>=100000)// каждый 100миллисек переводит состояние  
	{PORTB^=(1<<PB5);
		interval=T;
	}
	
	
	
	asm("sei"); 
	    }
	}