Хочу сделать тембрблок для усилка, нашёл очень годный проект, который можно взять за основу, на этом сайте с кодом на Си под PIC16F628. В программе в принципе разобрался более-менее. До этого все свои проекты на PIC16Fxxx и PIC18fxxx прогал на PicBasicPro, а вот сейчас после курса Си в универе захотелось перейти на этот язык полностью.
Скажите пожалуйста, какие трудности могут возникнуть при партировании этого проекта на PIC24 ? Ну разобраться с портами ввода-вывода это понятно, а вот в плане серьёзных поправок в коде, есть-ли какие-нибудь подводные камни?
Ну это понятно что контроллер необходимо брать с EEPROM, а вот какие ещё могут быть проблемы? Ознакомился со статьёй - http://www.gamma.spb.ru/articles.php?i=45 вроде "глобально" различий нет. Я честно говоря не особо понимаю какие могут возникнуть проблемы при переносе на PIC24, ибо это не знакомое для меня семейство контроллеров, а в программировании на Си под микроконтроллеры у меня нет опыта, об этом я уже писал... Можно чуть по подробнее о "подводных камнях"
Ну Вам наверное, как более опытному Си программисту наверняка очевидны моменты, из-за которых данный проект возможно не запустится на PIC24 Я же не прошу переписать за меня этот проект, а просто намекните с чем могут возникнуть проблемы, тогда буду хоть знать в каком направлении гуглить
Ну вот, поставил компилятор, создал проект и попытался впихнуть код в первозданном виде.
Как я понимаю, компилятору не нравится как я обращаюсь к eeprom и ещё он не понимает что такое INTF, INTE, RBIE, INTCON, CMCON, INTEDG, GIE и.т.д.
Возникли следующие ошибки:
make -f nbproject/Makefile-default.mk SUBPROJECTS= .build-conf make[1]: Entering directory `D:/proj/test.X' make -f nbproject/Makefile-default.mk dist/default/production/test.X.production.hex make[2]: Entering directory `D:/proj/test.X' main.c:15: error: syntax error before numeric constant main.c:15: warning: data definition has no type or storage class main.c:16: error: syntax error before numeric constant main.c:16: warning: data definition has no type or storage class main.c:17: error: syntax error before numeric constant main.c:17: warning: data definition has no type or storage class main.c:18: error: syntax error before numeric constant main.c:18: warning: data definition has no type or storage class main.c:20: error: syntax error before numeric constant main.c:20: warning: data definition has no type or storage class main.c:21: error: syntax error before numeric constant main.c:21: warning: data definition has no type or storage class main.c:22: error: syntax error before numeric constant main.c:22: warning: data definition has no type or storage class main.c:23: error: syntax error before numeric constant main.c:23: warning: data definition has no type or storage class main.c:25: error: syntax error before numeric constant main.c:25: warning: data definition has no type or storage class main.c:26: error: syntax error before numeric constant main.c:26: warning: data definition has no type or storage class main.c:27: error: syntax error before numeric constant main.c:27: warning: data definition has no type or storage class main.c:28: error: syntax error before numeric constant main.c:28: warning: data definition has no type or storage class main.c:30: error: syntax error before numeric constant main.c:30: warning: data definition has no type or storage class main.c:31: error: syntax error before numeric constant main.c:31: warning: data definition has no type or storage class main.c:32: error: syntax error before 'N' main.c:32: warning: data definition has no type or storage class main.c:33: error: syntax error before numeric constant main.c:33: warning: data definition has no type or storage class main.c:42: error: syntax error before 'stb' main.c:42: warning: data definition has no type or storage class main.c:56: error: syntax error before 'void' main.c: In function 'xxx': main.c:58: error: 'INTF' undeclared (first use in this function) main.c:58: error: (Each undeclared identifier is reported only once main.c:58: error: for each function it appears in.) main.c:58: error: 'INTE' undeclared (first use in this function) main.c:60: error: 'RBIF' undeclared (first use in this function) main.c:60: error: 'RBIE' undeclared (first use in this function) main.c: In function 'main': main.c:72: error: 'GIE' undeclared (first use in this function) main.c:75: error: 'RA4' undeclared (first use in this function) main.c:66: warning: return type of 'main' is not 'int' main.c: In function 'podgot': main.c:86: error: 'INTCON' undeclared (first use in this function) main.c:89: error: 'CMCON' undeclared (first use in this function) main.c:91: error: 'RBPU' undeclared (first use in this function) main.c:93: error: 'INTE' undeclared (first use in this function) main.c:94: error: 'INTF' undeclared (first use in this function) main.c:95: error: 'INTEDG' undeclared (first use in this function) main.c:97: error: 'RBIE' undeclared (first use in this function) main.c:98: error: 'RBIF' undeclared (first use in this function) main.c: In function 'key': main.c:215: error: 'GIE' undeclared (first use in this function) main.c:216: error: 'RA0' undeclared (first use in this function) main.c:217: error: 'RB7' undeclared (first use in this function) main.c:218: error: 'RB6' undeclared (first use in this function) main.c:219: error: 'RB5' undeclared (first use in this function) main.c:221: error: 'RA7' undeclared (first use in this function) main.c:226: error: 'RA6' undeclared (first use in this function) main.c: At top level: main.c:245: error: syntax error before 'mut' main.c:245: warning: data definition has no type or storage class main.c:246: error: syntax error before 'stb' main.c:246: warning: data definition has no type or storage class main.c: In function 'i2c_str': main.c:280: error: 'RB1' undeclared (first use in this function) main.c: In function 'i2c_sto': main.c:283: error: 'RB1' undeclared (first use in this function) main.c:283: error: 'RB2' undeclared (first use in this function) main.c: At top level: main.c:287: error: syntax error before 'mut' main.c:287: warning: data definition has no type or storage class main.c:289: error: syntax error before 'stb' main.c:289: warning: data definition has no type or storage class main.c: In function 'ir_int': main.c:304: error: 'GIE' undeclared (first use in this function) main.c: At top level: main.c:325: error: syntax error before 'enc_napr' main.c:325: warning: data definition has no type or storage class main.c:326: error: syntax error before 'enc_act' main.c:326: warning: data definition has no type or storage class main.c: In function 'enc_int': main.c:330: error: 'GIE' undeclared (first use in this function) "C:\Program Files\Microchip\MPLAB C30\bin\pic30-gcc.exe" -g -omf=elf -x c -c -mcpu=24F16KA102 -MMD -MF build/default/production/main.o.d -o build/default/production/main.o main.c make[2]: Leaving directory `D:/proj/test.X' make[1]: Leaving directory `D:/proj/test.X' make[2]: *** [build/default/production/main.o] Error 1 make[1]: *** [.build-conf] Error 2 make: *** [.build-impl] Error 2
BUILD FAILED (exit value 2, total time: 1s)
Что я делаю не так?) Или компилятор не совместим с набором команд используемых в программе...
Вложения:
Комментарий к файлу: исходник в mplab x test.X.rar [10.1 KiB]
Скачиваний: 254
Не юзайте пока идех , берите из архива микрочипа мплаб стандартную версию не старше 8.46 Почему - в ее состав (в тулзы) входит visual initializer - архиполезная штуковина, которую они выбросили в старших версиях. Особенно удобно пользоваться пин селектом - переназначение ножек входных и выходных сигналов. Он генерит в проект пару файлов, которые я потом благополучно выбрасываю, переписывая в инициализацию оттуда нужный код.
Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 47
Вы не можете начинать темы Вы не можете отвечать на сообщения Вы не можете редактировать свои сообщения Вы не можете удалять свои сообщения Вы не можете добавлять вложения