http://forum.getchip.net/

USART PWM
http://forum.getchip.net/viewtopic.php?f=20&t=213
Страница 2 из 2

Автор:  Streetstyle [ 14 апр 2012, 20:15 ]
Заголовок сообщения:  Re: USART PWM

Больше нечем помоч немогу :zomg:

Вложения:
c.zip [113.24 КБ]
Скачиваний: 236

Автор:  Streetstyle [ 14 апр 2012, 20:55 ]
Заголовок сообщения:  Re: USART PWM

Нет вру ;) Советую писать в CodeVisionAVR там уже встроенны функции для работы со строками и UART, главное разбратся с Help-ом он только на английском

Автор:  hitalik [ 15 апр 2012, 01:13 ]
Заголовок сообщения:  Re: USART PWM

Вообщем спасибо всем зделал так и работае изумительно

Код:
void PWM_Transmit()//функция для передачи  OCR1 в ШИМ
{
   static char * str;//переменная для масива строк
   int count = 0;//переменная для количества символов
   while (count < 3)//делаем цикл в 3 раза так как моё число не превышает 999 то мне хватает
   {
     while ( !(UCSRA & (1<<RXC)) ); //ждем пока не будет символа
     str=(char*) realloc(str, count); //выделяем память под символ
     *(str+count)=UDR;               //пишем полученный символ в масив
    count++;                       //индексируем масив
   }   
   OCR1B = (int)atoi(str);//в итоге говорим что OCR1B = полученный масив str преобразованный из строчного в числовой (int)atoi(str)
   USART_Transmit('j');//так для отладки
}
int main( void ) //Главная функция
{
USART_Init(12); //Скорость соединения  115200
init_PWM();//инсталируем ШИМ
while (1)
  {     
    if (UDR == 'h')//если получаем h
        {
        PWM_Transmit();//то переходим сюда
        }
   //отправляем  в терминал h511 можно и h001 и получаем на выходе то что и требовалось!!!
      
  } 
}

Я понимаю что вы будете говорит за всякие буфера и всё такое но мне нужно было чтоб работало быстро и чётко!!!

Автор:  hitalik [ 15 апр 2012, 01:16 ]
Заголовок сообщения:  Re: USART PWM

Streetstyle
Спасибо конечно но мне нужно было управлять нагрузкой с пк
я уже разобрался

Автор:  hitalik [ 15 апр 2012, 01:18 ]
Заголовок сообщения:  Re: USART PWM

hitalik писал(а):
Streetstyle писал(а):
Выглядит ужасно !!! :shock:

PWM = (int)str;//преобр Как я пнял :crazy: этим ты хочмш преобразовать строку к примеру "25" в число 25 если да то это ошибка !
Для преобразования строки в число нужна функчия atoi() из библиотеки stdlib.h :cool:

Вы правы, я всю ночь сидел и думал, и пришол к выводу что ШИМ получает только первый сивол мною переданный, и когда я увидел ваше сообшение всё столо на свой места но atoi() не работает с сиволом ему нужна строка мне нужен буфер как я понял помогите с этим!!!

вам огромное спасибо Ваше замечание было решающие...

Страница 2 из 2 Часовой пояс: UTC + 3 часа [ Летнее время ]
Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group
http://www.phpbb.com/