Jump to content
Guest Ramil

Программный Шим

Recommended Posts

Guest Ramil

помогите пожалуйста 3 дня мучаюсь (смог понять только аппаратный шим )
а вот для программного шима мозгов не хватает 

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

   
ISR (TIMER0_OVF_vect)
{
	PORTB=0x04;   
}


	


void main(void)
{

	PORTB=0x04;                                     //конфигурируем порт
	DDRB=0x04;

	TCCR0=0x01;                                     //настраиваем таймер
	TCNT0=0x00;

	TIMSK=0x01;                                     //разрешаем генерацию прерывания по переполнению таймера T0

	asm("sei");   
	                                  //глобально разрешаем прерывания
    OCR1A =245;
	while (1)
	{
		OCR1A--;
		_delay_ms(50);
	}
}

 

Share this post


Link to post
Share on other sites

В вашем коде нет даже намека на программный ШИМ, в нем вообще никакой генерации импульсов нет.

Share this post


Link to post
Share on other sites

И где здесь ШИМ? Таймер зачем вообще настраивать? Для программного, по определению, вообще не нужен таймер. На то он и программный.

напишите в бесконечном цикле

PORTB=0x04
_delay_ms(1)
PORTB=0x00
_delay_ms(9)

И будет у вас программный ШИМ с фиксированной скважностью 10% на 100Гц. Как сделать с переменной - подумайте сами.

Share this post


Link to post
Share on other sites

Технология Maxim Integrated nanoPower: когда малый IQ имеет преимущества

При разработке устройств с батарейным питанием важно выбирать компоненты не просто с малым потреблением, но и с предельно малым током покоя. При этом следует обратить внимание на линейку nanoPower производства компании Maxim Integrated. В статье рассмотрено их применение на примере системы датчиков беспроводной оконной сигнализации.

Подробнее

23 часа назад, Alexeyslav сказал:

Для программного, по определению, вообще не нужен таймер. На то он и программный.

Я на вашем месте не был бы так категоричен.

Share this post


Link to post
Share on other sites

Почему же? Программному таймер не нужен. С ним можно сделать но обычно как раз отсутствие свободного таймера(или нужного числа каналов ШИМ) и подталкивает на программную реализацию, таймер может быть вспомогательным элементом чтобы к примеру добиться стабильности периода.

Share this post


Link to post
Share on other sites
                     

Платы Nucleo на базе STM32G0: чего можно добиться с помощью связки Nucleo и Arduino

Платы Nucleo и платы расширения X-NUCLEO от STMicroelectronics можно интегрировать в платформу Arduino с помощью библиотеки STM32duino. Связка плат Nucleo и платформы Arduino, и наличие готовых библиотек – представляет удобный инструмент для создания прототипов и конечных приложений в условиях ограниченного времени. Статья содержит пошаговые инструкции по установке библиотек и запуску примеров для Nucleo.

Подробнее...

Join the conversation

You are posting as a guest. If you have an account, sign in now to post with your account.
Note: Your post will require moderator approval before it will be visible.

Guest
Reply to this topic...

×   Pasted as rich text.   Restore formatting

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

Loading...

×
×
  • Create New...