Хотелось-бы пару простеньких программ с подробным описанием. К примеру - переключение портов при поочерёдном нажатии на кнопку, регулировку яркости светодиода с задействованием ШИМ.
Пост N: 14
Зарегистрирован: 07.04.09
Откуда: Россия, Иваново
Рейтинг:
0
Отправлено: 22.04.09 09:00. Заголовок: Вот пару примеров на..
Вот пару примеров на HI-TECH. МК - PIC16F628A Первый пример - моргание светиком 1 Гц Второй проект - переключение портов при поочерёдном нажатии на кнопку. В архиве оба проекта и проект протеуса.
Пост N: 15
Зарегистрирован: 07.04.09
Откуда: Россия, Иваново
Рейтинг:
0
Отправлено: 22.04.09 09:41. Заголовок: Это файл находящийся..
Это файл находящийся в папке include компилятора. В нем описаны (присвоены адреса) все регистры конкретного МК, такие как PORTA, PORTB, TRISA и т.д....
Пост N: 16
Зарегистрирован: 07.04.09
Откуда: Россия, Иваново
Рейтинг:
0
Отправлено: 22.04.09 09:44. Заголовок: Вот ещё проектик, ре..
Вот ещё проектик, реализация синуса с помощью ШИМа. Может кому пригодиться :) Это камертон, делал одному человеку. Схема,прошивка, исходник и описание в архиве.
Вот что нашёл на VRTP: "Кавычки вместо угловых скобок говорят компилятору о том, что этот файл нужно искать в директории с проектом." Кстати, отдельно прописывать частоту обязательно? Нашёл так-же в проекте: #define PIC_CLK 20000000.
Пост N: 1068
Зарегистрирован: 26.12.06
Откуда: Россия, Заозерск, Мурманской обл.
Рейтинг:
4
Отправлено: 22.04.09 10:22. Заголовок: Алексей, в общем с э..
Алексей, в общем с этим практически всё понятно. В начале подключаем <pic.h>. Мастер проекта сам поймет чего мы хотим. Нашёл там там такую запись: #if defined(_16F627A) || defined(_16F628A) || defined(_16F648A) #include <pic16f62xa.h>. Т.е. он сам подключит в проект файл pic16f62xa.h. Непонятны 2 момента: 1. Зачем подключать подтягивающие резисторы, ведь порты В работают на выход. 2. Что обозначают строки после задания конфигурации.
Ок, посмотрел pic16f62xa.pic. Т.е. это указание регистров с их абсолютными адресами? А отредактировать 1 раз pic16f62xa.pic можно? Т.е. прописать туда 2 регистра и забыть. Конфликта не будет? Там по адресу 0х00 записан INDF, а по адресу 0x0E TMR1L.
Пост N: 22
Зарегистрирован: 07.04.09
Откуда: Россия, Иваново
Рейтинг:
0
Отправлено: 22.04.09 11:22. Заголовок: Фиг знает что там пр..
Фиг знает что там прописано под адресом 0х00, но когда я объявил переменную WREG с адресом 0х00, то работал с ней как с аккумулятором. По поводу 0x0E, в pic16f62xa.pic объявлены младший и старший байт таймера TMR1, а я его объявил как 2-х байтную переменную, что-бы работать с таймером легче было. Можно всё это прописать 1 раз в pic16f62xa.pic и не париться.
Строки static volatile unsigned char WREG @ 0x00; static volatile near unsigned int TMR1 @ 0x00E; и RBPU = 0; // Подтягиваем внутренние резисторы в данном проекте не нужны, но и не делают ничего плохого. Это просто у меня заготовка, которую я копирую в проект, что-бы по 20 раз не писать одно и тоже.
Пост N: 1071
Зарегистрирован: 26.12.06
Откуда: Россия, Заозерск, Мурманской обл.
Рейтинг:
4
Отправлено: 22.04.09 13:07. Заголовок: -=Alex=- пишет: По ..
-=Alex=- пишет:
цитата:
По поводу 0x0E, в pic16f62xa.pic объявлены младший и старший байт таймера TMR1, а я его объявил как 2-х байтную переменную, что-бы работать с таймером легче было.
Да, разобрался. Алексей, попробовал третий пример с синусом, компилятор ругается. Вот отчёт:
(1273) Omniscient Code Generation not available in Lite mode (warning) Warning [1258] D:\Microchip\HI-TECH Software\PICC\PRO\9.60\sources\ftneg.c; 17. possible stack overflow when calling function "___ftneg" Warning [1258] float.c; 34. possible stack overflow when calling function "___ftpack" Warning [1258] D:\Microchip\HI-TECH Software\PICC\PRO\9.60\sources\float.c; 16. possible stack overflow when calling function "___ftunpack" Error [1347] ; 0. can't find 0x70 words (0x70 withtotal) for psect "text176" in segment "CODE" (largest unused contiguous range 0x6C) Error [1347] ; 0. can't find 0x5A words (0x5a withtotal) for psect "text180" in segment "CODE" (largest unused contiguous range 0x8) Error [1347] ; 0. can't find 0x54 words (0x54 withtotal) for psect "text163" in segment "CODE" (largest unused contiguous range 0x8) Error [1347] ; 0. can't find 0x4A words (0x4a withtotal) for psect "text174" in segment "CODE" (largest unused contiguous range 0x8) Error [1347] ; 0. can't find 0x4A words (0x4a withtotal) for psect "text177" in segment "CODE" (largest unused contiguous range 0x8) Error [1347] ; 0. can't find 0x2F words (0x2f withtotal) for psect "intrtext" in segment "CODE" (largest unused contiguous range 0x8) Error [1347] ; 0. can't find 0x2C words (0x2c withtotal) for psect "text182" in segment "CODE" (largest unused contiguous range 0x8) Error [1347] ; 0. can't find 0x2A words (0x2a withtotal) for psect "text172" in segment "CODE" (largest unused contiguous range 0x8) Error [1347] ; 0. can't find 0x1C words (0x1c withtotal) for psect "text173" in segment "CODE" (largest unused contiguous range 0x8) Error [1347] ; 0. can't find 0x19 words (0x19 withtotal) for psect "text167" in segment "CODE" (largest unused contiguous range 0x8) Error [1347] ; 0. can't find 0x12 words (0x12 withtotal) for psect "text178" in segment "CODE" (largest unused contiguous range 0x8)
Clean: Deleting intermediary and output files. Clean: Deleted file "D:\PIC_CHIP\Projects\PIC16F628\123\123.mcs". Clean: Done. Executing: "C:\Program Files\HI-TECH Software\PICC\9.50\BIN\PICC.EXE" -C -E"kod.cce" "kod.c" -O"kod.obj" -Zg9 -O -ASMLIST -Q -MPLAB -16F628A Advisory[1207] : some of the command line options you are using are now obsolete Advisory[1208] : use --help option or refer to the user manual for option details Warning[349] D:\PIC_CHIP\Projects\PIC16F628\123\kod.c 21 : non-prototyped function declaration for "stearr" Warning[356] D:\PIC_CHIP\Projects\PIC16F628\123\kod.c 45 : implicit conversion of float to integer Executing: "C:\Program Files\HI-TECH Software\PICC\9.50\BIN\PICC.EXE" -E"123.lde" "D:\PIC_CHIP\Projects\PIC16F628\123\kod.obj" -M"123.map" -O"123.cof" -O"123.hex" -Q -MPLAB -16F628A Advisory[1207] : some of the command line options you are using are now obsolete Advisory[1208] : use --help option or refer to the user manual for option details
Memory Usage Map:
Program space: CODE used 5BDh ( 1469) of 800h words ( 71.7%) CONST used 1Dh ( 29) of 800h words ( 1.4%) ENTRY used 16h ( 22) of 800h words ( 1.1%) STRING used 0h ( 0) of 800h words ( 0.0%)
Data space: BANK0 used 4Bh ( 75) of 60h bytes ( 78.1%) BANK1 used 0h ( 0) of 50h bytes ( 0.0%) BANK2 used 0h ( 0) of 30h bytes ( 0.0%) COMBANK used 1h ( 1) of 10h bytes ( 6.3%)
EEPROM space: EEDATA used 8h ( 8) of 80h bytes ( 6.3%)
ID Location space: IDLOC used 0h ( 0) of 4h bytes ( 0.0%)
Configuration bits: CONFIG used 1h ( 1) of 1h word (100.0%)
Summary: Program space used 5F0h ( 1520) of 800h words ( 74.2%) Data space used 4Ch ( 76) of E0h bytes ( 33.9%) EEPROM space used 8h ( 8) of 80h bytes ( 6.3%) ID Location space used 0h ( 0) of 4h bytes ( 0.0%) Configuration bits used 1h ( 1) of 1h word (100.0%)
Пост N: 20
Зарегистрирован: 02.10.07
Откуда: Россия, Ульяновск
Рейтинг:
0
Отправлено: 21.05.09 18:30. Заголовок: Да, блин... Снёс HT-..
цитата:
Да, блин... Снёс HT-PICC pro v9.60 PL5 и установил HT-PICC v9.50 pl2. Проект откомпилировался без проблем. Как-то странно...
а у меня почему-то V9.50pl2 ругается на 16F628a, нет говорит такого в библиотеке может в .ini-файле самому 16F628a как-то прописать ? кстати, у HT-PICC директивы и макроопределения такие же как и у CCS PIC ?
/* Definitions for STATUS register */ static volatile bit CARRY @((unsigned)&STATUS*8)+0; static volatile bit DC @((unsigned)&STATUS*8)+1; static volatile bit ZERO @((unsigned)&STATUS*8)+2; static volatile bit PD @((unsigned)&STATUS*8)+3; static volatile bit TO @((unsigned)&STATUS*8)+4; static bit RP0 @((unsigned)&STATUS*8)+5; static bit RP1 @((unsigned)&STATUS*8)+6; static bit IRP @((unsigned)&STATUS*8)+7;
/* Definitions for PORTA register */ static volatile bit RA0 @((unsigned)&PORTA*8)+0; static volatile bit RA1 @((unsigned)&PORTA*8)+1; static volatile bit RA2 @((unsigned)&PORTA*8)+2; static volatile bit RA3 @((unsigned)&PORTA*8)+3; static volatile bit RA4 @((unsigned)&PORTA*8)+4; static volatile bit RA5 @((unsigned)&PORTA*8)+5; static volatile bit RA6 @((unsigned)&PORTA*8)+6; static volatile bit RA7 @((unsigned)&PORTA*8)+7;
/* Definitions for PORTB register */ static volatile bit RB0 @((unsigned)&PORTB*8)+0; static volatile bit RB1 @((unsigned)&PORTB*8)+1; static volatile bit RB2 @((unsigned)&PORTB*8)+2; static volatile bit RB3 @((unsigned)&PORTB*8)+3; static volatile bit RB4 @((unsigned)&PORTB*8)+4; static volatile bit RB5 @((unsigned)&PORTB*8)+5; static volatile bit RB6 @((unsigned)&PORTB*8)+6; static volatile bit RB7 @((unsigned)&PORTB*8)+7;
/* Definitions for INTCON register */ static volatile bit RBIF @((unsigned)&INTCON*8)+0; static volatile bit INTF @((unsigned)&INTCON*8)+1; static volatile bit T0IF @((unsigned)&INTCON*8)+2; static bit RBIE @((unsigned)&INTCON*8)+3; static bit INTE @((unsigned)&INTCON*8)+4; static bit T0IE @((unsigned)&INTCON*8)+5; static bit PEIE @((unsigned)&INTCON*8)+6; static bit GIE @((unsigned)&INTCON*8)+7;
/* Definitions for PIR1 register */ static volatile bit TMR1IF @((unsigned)&PIR1*8)+0; static volatile bit TMR2IF @((unsigned)&PIR1*8)+1; static volatile bit CCP1IF @((unsigned)&PIR1*8)+2; static volatile bit TXIF @((unsigned)&PIR1*8)+4; static volatile bit RCIF @((unsigned)&PIR1*8)+5; static volatile bit CMIF @((unsigned)&PIR1*8)+6; static volatile bit EEIF @((unsigned)&PIR1*8)+7;
/* Definitions for T1CON register */ static bit TMR1ON @((unsigned)&T1CON*8)+0; static bit TMR1CS @((unsigned)&T1CON*8)+1; static bit T1SYNC @((unsigned)&T1CON*8)+2; static bit T1OSCEN @((unsigned)&T1CON*8)+3; static bit T1CKPS0 @((unsigned)&T1CON*8)+4; static bit T1CKPS1 @((unsigned)&T1CON*8)+5;
/* Definitions for T2CON register */ static bit T2CKPS0 @((unsigned)&T2CON*8)+0; static bit T2CKPS1 @((unsigned)&T2CON*8)+1; static bit TMR2ON @((unsigned)&T2CON*8)+2; static bit TOUTPS0 @((unsigned)&T2CON*8)+3; static bit TOUTPS1 @((unsigned)&T2CON*8)+4; static bit TOUTPS2 @((unsigned)&T2CON*8)+5; static bit TOUTPS3 @((unsigned)&T2CON*8)+6;
/* Definitions for CCP1CON register */ static bit CCP1M0 @((unsigned)&CCP1CON*8)+0; static bit CCP1M1 @((unsigned)&CCP1CON*8)+1; static bit CCP1M2 @((unsigned)&CCP1CON*8)+2; static bit CCP1M3 @((unsigned)&CCP1CON*8)+3; static volatile bit CCP1Y @((unsigned)&CCP1CON*8)+4; static volatile bit CCP1X @((unsigned)&CCP1CON*8)+5;
/* Definitions for RCSTA register */ static volatile bit RX9D @((unsigned)&RCSTA*8)+0; static volatile bit OERR @((unsigned)&RCSTA*8)+1; static volatile bit FERR @((unsigned)&RCSTA*8)+2; static bit ADEN @((unsigned)&RCSTA*8)+3; static bit CREN @((unsigned)&RCSTA*8)+4; static bit SREN @((unsigned)&RCSTA*8)+5; static bit RX9 @((unsigned)&RCSTA*8)+6; static bit SPEN @((unsigned)&RCSTA*8)+7;
/* Definitions for CMCON register */ static bit CM0 @((unsigned)&CMCON*8)+0; static bit CM1 @((unsigned)&CMCON*8)+1; static bit CM2 @((unsigned)&CMCON*8)+2; static bit CIS @((unsigned)&CMCON*8)+3; static bit C1INV @((unsigned)&CMCON*8)+4; static bit C2INV @((unsigned)&CMCON*8)+5; static volatile bit C1OUT @((unsigned)&CMCON*8)+6; static volatile bit C2OUT @((unsigned)&CMCON*8)+7;
/* Definitions for OPTION register */ static bank1 bit PS0 @((unsigned)&OPTION*8)+0; static bank1 bit PS1 @((unsigned)&OPTION*8)+1; static bank1 bit PS2 @((unsigned)&OPTION*8)+2; static bank1 bit PSA @((unsigned)&OPTION*8)+3; static bank1 bit T0SE @((unsigned)&OPTION*8)+4; static bank1 bit T0CS @((unsigned)&OPTION*8)+5; static bank1 bit INTEDG @((unsigned)&OPTION*8)+6; static bank1 bit RBPU @((unsigned)&OPTION*8)+7;
/* Definitions for TRISA register */ static volatile bank1 bit TRISA0 @((unsigned)&TRISA*8)+0; static volatile bank1 bit TRISA1 @((unsigned)&TRISA*8)+1; static volatile bank1 bit TRISA2 @((unsigned)&TRISA*8)+2; static volatile bank1 bit TRISA3 @((unsigned)&TRISA*8)+3; static volatile bank1 bit TRISA4 @((unsigned)&TRISA*8)+4; static volatile bank1 bit TRISA5 @((unsigned)&TRISA*8)+5; static volatile bank1 bit TRISA6 @((unsigned)&TRISA*8)+6; static volatile bank1 bit TRISA7 @((unsigned)&TRISA*8)+7;
/* Definitions for TRISB register */ static volatile bank1 bit TRISB0 @((unsigned)&TRISB*8)+0; static volatile bank1 bit TRISB1 @((unsigned)&TRISB*8)+1; static volatile bank1 bit TRISB2 @((unsigned)&TRISB*8)+2; static volatile bank1 bit TRISB3 @((unsigned)&TRISB*8)+3; static volatile bank1 bit TRISB4 @((unsigned)&TRISB*8)+4; static volatile bank1 bit TRISB5 @((unsigned)&TRISB*8)+5; static volatile bank1 bit TRISB6 @((unsigned)&TRISB*8)+6; static volatile bank1 bit TRISB7 @((unsigned)&TRISB*8)+7;
/* Definitions for PIE1 register */ static bank1 bit TMR1IE @((unsigned)&PIE1*8)+0; static bank1 bit TMR2IE @((unsigned)&PIE1*8)+1; static bank1 bit CCP1IE @((unsigned)&PIE1*8)+2; static bank1 bit TXIE @((unsigned)&PIE1*8)+4; static bank1 bit RCIE @((unsigned)&PIE1*8)+5; static bank1 bit CMIE @((unsigned)&PIE1*8)+6; static bank1 bit EEIE @((unsigned)&PIE1*8)+7;
/* Definitions for PCON register */ static volatile bank1 bit BOR @((unsigned)&PCON*8)+0; static volatile bank1 bit POR @((unsigned)&PCON*8)+1; static bank1 bit OSCF @((unsigned)&PCON*8)+3;
/* Definitions for TXSTA register */ static volatile bank1 bit TX9D @((unsigned)&TXSTA*8)+0; static volatile bank1 bit TRMT @((unsigned)&TXSTA*8)+1; static bank1 bit BRGH @((unsigned)&TXSTA*8)+2; static bank1 bit SYNC @((unsigned)&TXSTA*8)+4; static bank1 bit TXEN @((unsigned)&TXSTA*8)+5; static bank1 bit TX9 @((unsigned)&TXSTA*8)+6; static bank1 bit CSRC @((unsigned)&TXSTA*8)+7;
/* Definitions for EECON1 register */ static volatile bank1 bit RD @((unsigned)&EECON1*8)+0; static volatile bank1 bit WR @((unsigned)&EECON1*8)+1; static bank1 bit WREN @((unsigned)&EECON1*8)+2; static volatile bank1 bit WRERR @((unsigned)&EECON1*8)+3;
/* Definitions for VRCON register */ static bank1 bit VR0 @((unsigned)&VRCON*8)+0; static bank1 bit VR1 @((unsigned)&VRCON*8)+1; static bank1 bit VR2 @((unsigned)&VRCON*8)+2; static bank1 bit VR3 @((unsigned)&VRCON*8)+3; static bank1 bit VRR @((unsigned)&VRCON*8)+5; static bank1 bit VROE @((unsigned)&VRCON*8)+6; static bank1 bit VREN @((unsigned)&VRCON*8)+7;
Пост N: 22
Зарегистрирован: 02.10.07
Откуда: Россия, Ульяновск
Рейтинг:
0
Отправлено: 23.05.09 18:04. Заголовок: Значит всё должно ра..
цитата:
Значит всё должно работать. Какую именно пишет ошибку ? Листинг выложите сюда.
вот чо говорит: Clean: Deleting intermediary and output files. Clean: Deleted file "C:\HTSOFT\proba.obj". Clean: Deleted file "C:\HTSOFT\proba.cce". Clean: Deleted file "proba.cof". Clean: Deleted file "C:\HTSOFT\proba.mcs". Clean: Done. Executing: "C:\Program Files\HI-TECH Software\PICC-Lite\9.50\BIN\PICL.EXE" -C -E"proba.cce" "proba.c" -O"proba.obj" -Zg9 -O -ASMLIST -Q -MPLAB -16F628 Error[922] : chip "16F628" not present in chipinfo file "C:\Program Files\HI-TECH Software\PICC-Lite\9.50\dat\picc-lite.ini" Halting build on first failure as requested. BUILD FAILED: Sat May 23 18:54:55 2009 там действительно его нет может всё же версия другая? можно попробовать вручную прописать 16F873, 16F628 в этом picc-lite.ini, но не знаю как если можно, вышлите свой picc-lite.ini
Пост N: 30
Зарегистрирован: 02.10.07
Откуда: Россия, Ульяновск
Рейтинг:
0
Отправлено: 04.06.09 15:33. Заголовок: определился с компил..
определился с компилером, понравился MicroC кто-нибудь пишет в MicroC? может скинете свои наработки(любые) или примерчики с описанием пробовал пользовать встроенные, но что-то тяжко пока без привычки Или может ссылку на самоучитель по MicroC кто даст (ИМЕННО по MicroC)
Пост N: 39
Зарегистрирован: 07.04.09
Откуда: Россия, Иваново
Рейтинг:
0
Отправлено: 04.06.09 17:35. Заголовок: akd, здесь по моему ..
akd, здесь по моему другой компилятор обсуждаеться. http://eldigi.ru/site/prog/4.php в архиве компиль и Русская документация по нему. Может поможет чем.
на официальном сайте можно скачать шикарную документацию. Правда на буржуйском. Но написано всё очень толково и подробно. Кстати, сейчас посмотрел у себя, есть у меня на русском, 2МБ. Если интересно, могу скинуть на почтовик.
Пост N: 120
Зарегистрирован: 15.03.10
Откуда: Россия, Волжский
Рейтинг:
0
Отправлено: 19.07.11 02:59. Заголовок: доброе время суток м..
доброе время суток мужики подскажите пожайлусто, не могу уже разобратся сам. всё перепробовал. у меня есть книга <<применение микроконтроллеров PIC18>> автор Барри Брэй. хотел с помощью её поизучать Си для PIC18, но некак немогу создать проект. как описано в книге неполучается, да и всети так нечто и ненашол.
Все даты в формате GMT
3 час. Хитов сегодня: 8
Права: смайлы да, картинки да, шрифты нет, голосования нет
аватары да, автозамена ссылок вкл, премодерация откл, правка нет