Страница 44 из 386
Re: Вопросы по С/С++ (СИ)
Добавлено: Ср окт 12, 2011 17:29:34
inkHunter
IfoR писал(а):Дык, вы бы поконкретнее вопрос бы задали. Это же не форум телепатов-электронщиков. Всмысле строку в HEX? Т.е. надо Преобразовать строку так, что бы каждый символ старой строки отображался шестнадцатеричным значением кода символа в новой?
да
и еще вопрос как преобразовать масив типа іnt в строку ?
например есть {1,2,3} нада "1 2 3" ?
Re: Вопросы по С/С++ (СИ)
Добавлено: Ср окт 12, 2011 20:39:03
IfoR
Ну тогда тут можно поступить разными способами. Например, допустим, пусть будет такая функция:
Код: Выделить всё
void str2HEX(char * in, char * buffer)
{
while (*in) {sprintf(buffer, "%02X", *in); buffer+=2; in++;}
}
Её в качестве параметра in передаётся исходная строка, а buffer - место для результирующей строки.
Re: Вопросы по С/С++ (СИ)
Добавлено: Чт окт 13, 2011 07:53:56
Мастер Ломастер
IfoR писал(а):Ну тогда тут можно поступить разными способами. Например, допустим, пусть будет такая функция:
Код: Выделить всё
void str2HEX(char * in, char * buffer)
{
while (*in) {sprintf(buffer, "%02X", *in); buffer+=2; in++;}
}
Её в качестве параметра in передаётся исходная строка, а buffer - место для результирующей строки.
страшная вещь!
Re: Вопросы по С/С++ (СИ)
Добавлено: Чт окт 13, 2011 10:17:20
inkHunter
Мастер Ломастер писал(а):IfoR писал(а):Ну тогда тут можно поступить разными способами. Например, допустим, пусть будет такая функция:
Код: Выделить всё
void str2HEX(char * in, char * buffer)
{
while (*in) {sprintf(buffer, "%02X", *in); buffer+=2; in++;}
}
Её в качестве параметра in передаётся исходная строка, а buffer - место для результирующей строки.
страшная вещь!
а как правильно ?
Re: Вопросы по С/С++ (СИ)
Добавлено: Чт окт 13, 2011 10:37:20
Мастер Ломастер
а разве я сказал - неправильно? все правильно, но страшно... функция пишет данные в буфер без всяких проверок на размер... во-всяком случае, об этом надо знать.
Re: Вопросы по С/С++ (СИ)
Добавлено: Чт окт 13, 2011 15:00:14
IfoR
Не страшней, чем sprintf.

Размер буфера легко вычисляется: количество_символов_с_строке * 2 +1
Хотя, вместо sprintf можно написать свою функцию:
Код: Выделить всё
char HEX(char i)
{ return i + ((i>9)?('A'-10):('0')); }
void str2HEX(char * in, char * buffer)
{
while (*in) {*buffer++= HEX(*in / 10); *buffer++= HEX(*in % 10); in++;}
*buffer = 0;
}
Re: Вопросы по С/С++ (СИ)
Добавлено: Чт окт 13, 2011 16:16:45
Slavyan17
Посоветуйте хорошую книгу с нуля по программированию AVR язык С.
Re: Вопросы по С/С++ (СИ)
Добавлено: Чт окт 13, 2011 17:07:59
Gudd-Head
Slavyan17 писал(а):Посоветуйте хорошую книгу с нуля по программированию AVR язык С.
Как вариант, Программирование на языке C для AVR и PIC микроконтроллеров (Шпак).
Re: Вопросы по С/С++ (СИ)
Добавлено: Чт окт 13, 2011 17:33:01
Slavyan17
Спасибо начнем изучать

Re: Вопросы по С/С++ (СИ)
Добавлено: Пт окт 14, 2011 03:56:18
Кислый
так. понадобились макроопроделения, а я что-то нигде не найду толковой записи.
сейчас есть так:
#define xxx(i) (i<<XXX)
а надо получить:
#define xxx(N, i) и чтобы заменяло на (i<<XXXN)
кто подскажет ? не срочно, но и необходимо
Re: Вопросы по С/С++ (СИ)
Добавлено: Пт окт 14, 2011 22:03:14
Antifritz
А ХХХ-это число? И в его конец нужно "дописать" N?
Тогда так:
#define xxx(N, i) (i<<(XXX*1000+N))
А может лучше процедуру написать?
Re: Вопросы по С/С++ (СИ)
Добавлено: Пт окт 14, 2011 23:41:08
IfoR
Re: Вопросы по С/С++ (СИ)
Добавлено: Пт окт 14, 2011 23:44:57
urry
#define _clrL(port,bit) (port|=(1<<bit))
#define _clrH(port,bit) (port&=~(1<<bit))
#define _clr(port,bit,val) _clr##val(PORT##port,bit)
#define _low(port,bit,val) _clrH(PORT##port,bit)
http://electronix.ru/forum/index.php?ac ... t&id=30242
Re: Вопросы по С/С++ (СИ)
Добавлено: Сб окт 15, 2011 00:12:46
Кислый
благодарю
Re: Вопросы по С/С++ (СИ)
Добавлено: Сб окт 15, 2011 18:47:32
dj-tok
всем здрасте, помогите разобраться какой прогой можно скомпилировать исходный код в о вложении, winavr его не берёт валится на ошибки такого вот рода. Другие не пробовал, так как не занимался никогда этим а на эту софтину книгу нашёл вроде понятно написано что делать.
Код: Выделить всё
> "make.exe" all
-------- begin --------
avr-gcc (WinAVR 20100110) 4.3.3
Copyright (C) 2008 Free Software Foundation, Inc.
This is free software; see the source for copying conditions. There is NO
warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
Compiling C: main.c
avr-gcc -c -mmcu=atmega8 -I. -gstabs -DF_CPU=1000000UL -Os -funsigned-char -funsigned-bitfields -fpack-struct -fshort-enums -Wall -Wstrict-prototypes -Wa,-adhlns=./main.lst -std=gnu99 -MMD -MP -MF .dep/main.o.d main.c -o main.o
main.c:1:19: warning: iom8v.h: No such file or directory
main.c:2:20: warning: macros.h: No such file or directory
main.c:4:20: warning: eeprom.h: No such file or directory
main.c:42:17: error: lcd.h: No such file or directory
main.c:43:19: error: delay.h: No such file or directory
main.c: In function 'DigitTerm':
main.c:58: warning: passing argument 1 of 'utoa' makes integer from pointer without a cast
main.c:58: warning: passing argument 2 of 'utoa' makes pointer from integer without a cast
main.c:59: warning: implicit declaration of function 'strcpy'
main.c:59: warning: incompatible implicit declaration of built-in function 'strcpy'
main.c:59: warning: pointer targets in passing argument 1 of 'strcpy' differ in signedness
main.c:60: warning: incompatible implicit declaration of built-in function 'strcpy'
main.c:60: warning: pointer targets in passing argument 1 of 'strcpy' differ in signedness
main.c:61: warning: incompatible implicit declaration of built-in function 'strcpy'
main.c:61: warning: pointer targets in passing argument 1 of 'strcpy' differ in signedness
main.c:62: warning: implicit declaration of function 'strcat'
main.c:62: warning: incompatible implicit declaration of built-in function 'strcat'
main.c:62: warning: pointer targets in passing argument 1 of 'strcat' differ in signedness
main.c:62: warning: pointer targets in passing argument 2 of 'strcat' differ in signedness
main.c:63: warning: implicit declaration of function 'lcd_rus'
main.c: In function 'DigitTime':
main.c:68: warning: passing argument 1 of 'utoa' makes integer from pointer without a cast
main.c:68: warning: passing argument 2 of 'utoa' makes pointer from integer without a cast
main.c:69: warning: incompatible implicit declaration of built-in function 'strcpy'
main.c:69: warning: pointer targets in passing argument 1 of 'strcpy' differ in signedness
main.c:70: warning: incompatible implicit declaration of built-in function 'strcpy'
main.c:70: warning: pointer targets in passing argument 1 of 'strcpy' differ in signedness
main.c:71: warning: incompatible implicit declaration of built-in function 'strcat'
main.c:71: warning: pointer targets in passing argument 1 of 'strcat' differ in signedness
main.c:71: warning: pointer targets in passing argument 2 of 'strcat' differ in signedness
main.c:73: warning: implicit declaration of function 'WriteSym'
main.c:74: warning: passing argument 1 of 'utoa' makes integer from pointer without a cast
main.c:74: warning: passing argument 2 of 'utoa' makes pointer from integer without a cast
main.c:75: warning: incompatible implicit declaration of built-in function 'strcpy'
main.c:75: warning: pointer targets in passing argument 1 of 'strcpy' differ in signedness
main.c:76: warning: incompatible implicit declaration of built-in function 'strcpy'
main.c:76: warning: pointer targets in passing argument 1 of 'strcpy' differ in signedness
main.c:77: warning: pointer targets in passing argument 1 of 'strcat' differ in signedness
main.c:77: warning: pointer targets in passing argument 2 of 'strcat' differ in signedness
main.c: In function 'menu':
main.c:83: warning: implicit declaration of function 'WriteDDR'
main.c:88: warning: array subscript has type 'char'
main.c:88: warning: array subscript has type 'char'
main.c:89: warning: array subscript has type 'char'
main.c:89: warning: array subscript has type 'char'
main.c:92: warning: array subscript has type 'char'
main.c:95: warning: array subscript has type 'char'
main.c:95: warning: array subscript has type 'char'
main.c:96: warning: array subscript has type 'char'
main.c:96: warning: array subscript has type 'char'
main.c:99: warning: array subscript has type 'char'
main.c: In function 'adc_init':
main.c:105: error: 'ADCSR' undeclared (first use in this function)
main.c:105: error: (Each undeclared identifier is reported only once
main.c:105: error: for each function it appears in.)
main.c:106: error: 'ADMUX' undeclared (first use in this function)
main.c:107: error: 'ACSR' undeclared (first use in this function)
main.c: In function 'timer1_init':
main.c:113: error: 'TCCR1B' undeclared (first use in this function)
main.c:114: error: 'TCNT1H' undeclared (first use in this function)
main.c:115: error: 'TCNT1L' undeclared (first use in this function)
main.c:116: error: 'OCR1AH' undeclared (first use in this function)
main.c:117: error: 'OCR1AL' undeclared (first use in this function)
main.c:118: error: 'OCR1BH' undeclared (first use in this function)
main.c:119: error: 'OCR1BL' undeclared (first use in this function)
main.c:120: error: 'ICR1H' undeclared (first use in this function)
main.c:121: error: 'ICR1L' undeclared (first use in this function)
main.c:122: error: 'TCCR1A' undeclared (first use in this function)
main.c: In function 'timer2_init':
main.c:128: error: 'TCCR2' undeclared (first use in this function)
main.c:129: error: 'ASSR' undeclared (first use in this function)
main.c:130: error: 'TCNT2' undeclared (first use in this function)
main.c:131: error: 'OCR2' undeclared (first use in this function)
main.c: At top level:
main.c:135: warning: ignoring #pragma interrupt_handler timer2_ovf_isr
main.c: In function 'timer2_ovf_isr':
main.c:139: error: 'TCNT2' undeclared (first use in this function)
main.c:146: warning: array subscript has type 'char'
main.c:152: warning: array subscript has type 'char'
main.c:162: error: 'PORTD' undeclared (first use in this function)
main.c:171: warning: array subscript has type 'char'
main.c:180: warning: array subscript has type 'char'
main.c: At top level:
main.c:190: warning: ignoring #pragma interrupt_handler adc_isr
main.c: In function 'adc_isr':
main.c:193: error: 'ADCL' undeclared (first use in this function)
main.c:194: error: 'ADCH' undeclared (first use in this function)
main.c:203: warning: array subscript has type 'char'
main.c:205: error: 'PORTD' undeclared (first use in this function)
main.c:221: error: 'PINB' undeclared (first use in this function)
main.c:221: error: 'PIND' undeclared (first use in this function)
main.c:226: warning: implicit declaration of function 'Delay_ms'
main.c: At top level:
main.c:253: warning: function declaration isn't a prototype
main.c:252: warning: return type of 'main' is not 'int'
main.c: In function 'main':
main.c:254: error: 'DDRC' undeclared (first use in this function)
main.c:255: error: 'DDRD' undeclared (first use in this function)
main.c:256: error: 'PORTD' undeclared (first use in this function)
main.c:258: warning: implicit declaration of function 'lcd_init'
main.c:259: warning: implicit declaration of function 'Write_CGRAM'
main.c:263: error: 'ClrCur' undeclared (first use in this function)
main.c:265: warning: implicit declaration of function 'SEI'
main.c:266: warning: implicit declaration of function 'Delay_mks'
main.c:270: error: 'ADCSR' undeclared (first use in this function)
main.c:281: error: 'PINB' undeclared (first use in this function)
main.c:281: error: 'PIND' undeclared (first use in this function)
main.c:379: error: 'BrigCur' undeclared (first use in this function)
main.c:527: warning: implicit declaration of function 'EEPROM_READ'
main.c:643: warning: array subscript has type 'char'
main.c:643: warning: array subscript has type 'char'
main.c:647: warning: array subscript has type 'char'
main.c:647: warning: array subscript has type 'char'
main.c:651: warning: array subscript has type 'char'
main.c:651: warning: array subscript has type 'char'
main.c:655: warning: array subscript has type 'char'
main.c:655: warning: array subscript has type 'char'
main.c:659: warning: array subscript has type 'char'
main.c:659: warning: array subscript has type 'char'
main.c:663: warning: array subscript has type 'char'
main.c:663: warning: array subscript has type 'char'
main.c:667: warning: array subscript has type 'char'
main.c:667: warning: array subscript has type 'char'
main.c:684: warning: array subscript has type 'char'
main.c:688: warning: array subscript has type 'char'
main.c:692: warning: array subscript has type 'char'
main.c:696: warning: array subscript has type 'char'
main.c:700: warning: array subscript has type 'char'
main.c:704: warning: array subscript has type 'char'
main.c:708: warning: array subscript has type 'char'
main.c:736: warning: implicit declaration of function 'EEPROM_WRITE'
main.c:757: error: 'TIMSK' undeclared (first use in this function)
main.c:770: warning: implicit declaration of function 'CLI'
make.exe: *** [main.o] Error 1
> Process Exit Code: 2
Заранее благодарен за помощь
Re: Вопросы по С/С++ (СИ)
Добавлено: Сб окт 15, 2011 20:03:10
Мастер Ломастер
начните с того, что вместо #include <iom8v.h> введите #include <avr/io.h>.
далее ваша программа хочет работать с файлами lcd.h и delay.h - они у вас имеются? все другие файлы, что упомянуты в include так же имеются?
после того, как разберетесь с этим, скорее всего появятся новые вопросы, тогда их и обсудим.
Re: Вопросы по С/С++ (СИ)
Добавлено: Сб окт 15, 2011 23:45:41
urry
исходник иар овский
а что надо ?
Re: Вопросы по С/С++ (СИ)
Добавлено: Вс окт 16, 2011 09:38:31
Мастер Ломастер
urry писал(а):исходник иар овский
а что надо ?
мне показалось, там нет чисто иаровских фич, т.е. достаточно с большой вероятностью пойдет и под GCC... разве нет?
Re: Вопросы по С/С++ (СИ)
Добавлено: Вс окт 16, 2011 10:07:34
dj-tok
Просто есть мёртвый проект
http://www.radiokot.ru/lab/hardwork/11/, там нет информации чем компилировали, код поправили, а скомпилировать не можем под камень atmega8. Нужно просто исходный фаил скомпилировать и всё. Либо найти чем это сделать можно просто ещё ни один вариант, я так думаю, этой прошивки выйдет.
Re: Вопросы по С/С++ (СИ)
Добавлено: Вс окт 16, 2011 10:16:11
dj-tok
Файлов этих в наличии нет и не представляю от куда их брать, я с компиляцией столкнулся впервые и для меня это катастрофа. Вот файлики эти нашёл в папке с winavr а что с ними дальше делать не пойму.