Как перенести micros() на AVR studio ?

selevo
selevo аватар
Offline
Зарегистрирован: 21.12.2013

Может видел кто статейку по переносу   из  arduino ide в нормальные среды.

Надоело... скетчи не заливает  через UDSBASP  шьёт
минуту с лишним, клон STK500 который  норм. работает  в  AVR
studio , в  arduino IDE вообще не  виден.

Какое-то  сплошное  недоразумение и косяк  на косяке с костылём на костыле.

 

Valera19701
Valera19701 аватар
Offline
Зарегистрирован: 18.10.2015

а что мешает заглянуть в wiring.c и найти

unsigned long micros() {
	unsigned long m;
	uint8_t oldSREG = SREG, t;
	
	cli();
	m = timer0_overflow_count;
#if defined(TCNT0)
	t = TCNT0;
#elif defined(TCNT0L)
	t = TCNT0L;
#else
	#error TIMER 0 not defined
#endif

#ifdef TIFR0
	if ((TIFR0 & _BV(TOV0)) && (t < 255))
		m++;
#else
	if ((TIFR & _BV(TOV0)) && (t < 255))
		m++;
#endif

	SREG = oldSREG;
	
	return ((m << 8) + t) * (64 / clockCyclesPerMicrosecond());
}

 

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

Цитата:

Как перенести micros() на AVR studio ?

Ничего переносить не надо, в Atmel Studio пишем:

#include <util/delay.h>

int main(void)
{
	while (1) 
    {
        // ...какой-то код...

        _delay_us(100); // Задержка 100 мкс

        // ...какой-то код...

        _delay_ms(100); // Задержка 100 мс

        // ...какой-то код...
    }
}

UPD: Не, неправильно посоветовал. Это ж аналог ардуиновского delay(). Valera19701 дал правильный совет.

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

selevo пишет:

Надоело... скетчи не заливает  через USBASP  

Вообще-то заливает. Выбираем программатор, затем "Загрузить с помощью программатора".

selevo пишет:

шьёт минуту с лишним

Попробуйте в антивирусе папку с ардуино добавить в исключения. А то при компиляции антивирус может сканировать кучу мелких файлов в этой папке.

selevo
selevo аватар
Offline
Зарегистрирован: 21.12.2013

wiring.c смотрел вчера, там ещё  куча каких-то библиотек подключается,я увяз  ))) пока...

Jeka_M

У меня там  запятая пропущена  :) . Не пишет  через бутлоадер, а  через USBASP  ооооочень долго,я искал где  выставить в avrdude   isp частоту  чтоб ускорить ( последняя прошивка для USBASP такое позволяет,читал) но пока  глухо непонятно в каком месте  arduino формируеn  строку с ключами для usbasp,яб там прописал скорость, заодним бы проверил реальность скоростей. Через клон STK500 в AVR studio 5 секунд и готово. Антивиря у меня  нет но есть аутпост, попробую.

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

selevo пишет:

Может видел кто статейку по переносу   из  arduino ide в нормальные среды.

Так, вроде ж там есть возможность импортировать проект из среды Ардуино. Для чего это может быть нужно, я не знаю, но есть.

selevo пишет:

Надоело... скетчи не заливает  через UDSBASP  шьёт

минуту с лишним, клон STK500 который  норм. работает  в  AVR
studio , в  arduino IDE вообще не  виден.

Какое-то  сплошное  недоразумение и косяк  на косяке с костылём на костыле.

Читал несколько Ваших тем об этих проблемах и уверен в том, что разруха у Вас в голове. Разберитесь и всё будет нормально. А пока не разберётесь, у Вас в любой среде проблемы будут.

 

 

Клапауций 234
Offline
Зарегистрирован: 24.10.2016

selevo пишет:

Может видел кто статейку по переносу   из  arduino ide в нормальные среды.

Надоело... скетчи не заливает  через UDSBASP  шьёт
минуту с лишним, клон STK500 который  норм. работает  в  AVR
studio , в  arduino IDE вообще не  виден.

Какое-то  сплошное  недоразумение и косяк  на косяке с костылём на костыле.

та, да - не виден клон... всем виден, а тебе-недоразумению не виден

avrisp.name=AVR ISP
avrisp.communication=serial
avrisp.protocol=stk500v1
avrisp.program.protocol=stk500v1
avrisp.program.tool=avrdude
avrisp.program.extra_params=-P{serial.port}

avrispmkii.name=AVRISP mkII
avrispmkii.communication=usb
avrispmkii.protocol=stk500v2
avrispmkii.program.protocol=stk500v2
avrispmkii.program.tool=avrdude
avrispmkii.program.extra_params=-Pusb

arduinoasisp.name=Arduino as ISP
arduinoasisp.communication=serial
arduinoasisp.protocol=stk500v1
arduinoasisp.speed=19200
arduinoasisp.program.protocol=stk500v1
arduinoasisp.program.speed=19200
arduinoasisp.program.tool=avrdude
arduinoasisp.program.extra_params=-P{serial.port} -b{program.speed}

# STK500 firmware version v1 and v2 use different serial protocols.
# Using the 'stk500' protocol tells avrdude to try and autodetect the
# firmware version. If this leads to problems, we might need to add
# stk500v1 and stk500v2 entries to allow explicitely selecting the
# firmware version.
stk500.name=Atmel STK500 development board
stk500.communication=serial
stk500.protocol=stk500
stk500.program.protocol=stk500
stk500.program.tool=avrdude
stk500.program.extra_params=-P{serial.port}

 

 

selevo
selevo аватар
Offline
Зарегистрирован: 21.12.2013

в голове каша это точно

а  STK500 может он и видит но не шьёт.

А по поводу   что там у кого-то видит и шьёт ,так  это же меня не утешает :)

Клапауций 234
Offline
Зарегистрирован: 24.10.2016

selevo пишет:

в голове каша это точно

а  STK500 может он и видит но не шьёт.

А по поводу   что там у кого-то видит и шьёт ,так  это же меня не утешает :)

ну, при чём здесь Дуино ИДЕ, если аврдуде с программатором работает?

какую версию твой клон STK500 эмулирует - STK500, STK500v1, STK500v2 ?

не знаешь - пробуй все по очереди

selevo
selevo аватар
Offline
Зарегистрирован: 21.12.2013

 

на плате стоит  usb - uart  на  ft232  и  atmega8535

в фмк studio пишет

An STK500 with firmware version 2.04 has been detected.

Detecting on 'COM2'...
AVRISP with V2 firmware found on COM2
Getting revisions.. HW: 0x0f, SW Major: 0x02, SW Minor: 0x04 .. OK
Getting isp parameter.. SD=0x03 .. OK

в  ARDUINO IDE  выбор не велик и я всё попробовал.

сейчас  заметил  что ARDUINO IDE дудке   даёт  команду использовать  stk500 v1

 

 

 

Клапауций 234
Offline
Зарегистрирован: 24.10.2016

selevo пишет:

сейчас  заметил  что ARDUINO IDE дудке   даёт  команду использовать  stk500 v1

то, что нужно выбрать соответсвующий программатор в Дуино ИДЕ, тебе не рассказал дудка?