|
Непонятки с компилятором, CVAVR |
|
|
|
 |
Ответов
|
Dec 19 2007, 11:55
|
Частый гость
 
Группа: Свой
Сообщений: 131
Регистрация: 27-06-07
Из: Беларусь, Гомель
Пользователь №: 28 752

|
НУ да запрещены.... Нет так нельзя. Он у меня еще и слушать должен "собеседника". Принимать команды. UART работает на ура. Но только не хочет выполнять 1 процедуру. Это выход целых чисел int i=13, и выводить на уарт как 0x31 0x33. Вот что я от него и хотел. Пришлось написать собсвенную процедуру. Час времени и проценты памяти. Ладно, фиг с ним. Зато приятнее с масивами работать чем на пике. Это факт.  Вот тока с таймерами еще разобраться. Нужен частотомер на базе ATmega8L. Кстати, он умеет ли по I2C аппаратно говорить или он только SPI держит? Код void dprintf(long int i) { int a[8]; int b; a[0]=i/1000000; i=i-a[0]*1000000; a[1]=i/100000; i=i-a[1]*100000; a[2]=i/10000; i=i-a[2]*10000; a[3]=i/1000; i=i-a[3]*1000; a[4]=i/100; i=i-a[4]*100; a[5]=i/10; i=i-a[5]*10; a[6]=i/1; for(b=0;b<7;b++) if(a[b]!=0) break; //отсекаем нули первые for(b;b<7;b++) printf("%c", a[b]+48); //выводим данные }
Сообщение отредактировал Lexi - Dec 19 2007, 11:58
|
|
|
|
|
Dec 19 2007, 12:07
|
Знающий
   
Группа: Участник
Сообщений: 596
Регистрация: 26-05-06
Из: Москва
Пользователь №: 17 484

|
Цитата(Lexi @ Dec 19 2007, 14:55)  Код void dprintf(long int i) { int a[8]; int b; a[0]=i/1000000; i=i-a[0]*1000000; a[1]=i/100000; i=i-a[1]*100000; a[2]=i/10000; i=i-a[2]*10000; a[3]=i/1000; i=i-a[3]*1000; a[4]=i/100; i=i-a[4]*100; a[5]=i/10; i=i-a[5]*10; a[6]=i/1; for(b=0;b<7;b++) if(a[b]!=0) break; //отсекаем нули первые for(b;b<7;b++) printf("%c", a[b]+48); //выводим данные }  Пожалуйста прочитайте описание функции printf, например здесь: http://ru.wikipedia.org/wiki/PrintfАнатолий. PS: Или printf в CVAVR не понимает тип long?
Сообщение отредактировал aesok - Dec 19 2007, 13:07
|
|
|
|
|
Dec 20 2007, 05:35
|
Частый гость
 
Группа: Свой
Сообщений: 131
Регистрация: 27-06-07
Из: Беларусь, Гомель
Пользователь №: 28 752

|
Цитата(aesok @ Dec 19 2007, 16:07)   Пожалуйста прочитайте описание функции printf, например здесь: http://ru.wikipedia.org/wiki/PrintfАнатолий. PS: Или printf в CVAVR не понимает тип long? Ну если все так просто, и вы уже это все прочли, то почему просто не сказать в чем трабла??? Читай тут читай там... Да знаю я все это, в ВУЗе я это изучал все а не проходил. Сдесь совсем другая проблема - особеность ПО. В PICC все работает, WinAVR тоже. А вот а CVAVR не хочет. Ну и ладно, один фиг сча я этот контроллер перевел на SPI для общения с "главным".
|
|
|
|
|
Dec 20 2007, 10:28
|
Знающий
   
Группа: Участник
Сообщений: 596
Регистрация: 26-05-06
Из: Москва
Пользователь №: 17 484

|
Цитата(Lexi @ Dec 20 2007, 08:35)  Читай тут читай там... Да знаю я все это, в ВУЗе я это изучал все а не проходил. Я придерживаюсь мнения что человет который изучал функцию "printf" все а не проходил ее, никогда бы не стал изобретать "dprintf", а написал бы чтото типа: Код long foo;
printf("%l", foo); Анатолий.
|
|
|
|
Сообщений в этой теме
Lexi Непонятки с компилятором Dec 18 2007, 09:01 &-rey Цитата(Lexi @ Dec 18 2007, 13:01) Народ п... Dec 18 2007, 09:44 ALexx Цитата(Lexi @ Dec 18 2007, 13:01) А в ком... Dec 19 2007, 07:57 ALexx Цитата(Lexi @ Dec 19 2007, 15:55) НУ да з... Dec 20 2007, 08:35 vet aesok, понимает, и long, и float, и форматирование... Dec 19 2007, 15:00 GDI В CV есть куча примеров, вроде и с выводом на уарт... Dec 20 2007, 13:34 Lexi Если чесно, я уже и забыл про эту проблему.
Налади... Dec 21 2007, 13:53
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0
|
|
|