Вообщем спасибо всем зделал так и работае изумительно
Код:
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 и получаем на выходе то что и требовалось!!!
}
}
Я понимаю что вы будете говорит за всякие буфера и всё такое но мне нужно было чтоб работало быстро и чётко!!!