SERGE » 15 авг 2007, 04:55
Здравствуйте! у меня к вам такой вопрос. Раньше я програмировал на Bascom'е а сейчайс решил перейти на CAVR и столкнулся с такой проблемой. Допустим нужно отправлять по UART значение какой нибудь переменной. Как я понял за это дело в CAVR отвечает Ф-я putchar() которая присваевает числовому значению переменной знак ascii и отправляет его. Пусть переменная (unsigned char)i изменяется от 1 до 100. Затем я пишу в цикле putchar(i). Принимаю значит эту последовательность на ПК и вижу что на COM порт приходит какая то ересь. Затем решил попробовать отправлять только одно число например: i=48(0 на ascii); putchar(i) или вот так putchar(48). И врезультате каждого приема на ПК получал разные числа и все они были отличны от того которое я отправлял. Самое интересное что когда я работал на Bascom (print chr(i)) все отправлялось и принималось идеально. Люди помогите пожалуйста в чем я неправ и как с этим бороться. Обсмотрел весь сайт avr128 там только примеры как отправлять "ТЕКСТ"(Может плохо смотрел конечно). Пробовал пользоваться printf() но так и не понял как она работает.