| Микроконтролери и електроника http://mcu-bg.com/mcu_site/ |
|
| CCS - как да ... ? http://mcu-bg.com/mcu_site/viewtopic.php?f=7&t=3486 |
Страница 1 от 3 |
| Автор: | Sonic [ Пет Дек 29, 2006 6:05 pm ] | |||||||||
| Заглавие: | CCS - как да ... ? | |||||||||
Одеве си го дръпнах - CCS 4.13 много ми хареса, прегледах му опциите , направих си настройките за PIC16F870. Ама закъсах до програмната част. -Начи - идеят е : Пик-а чете АЦП-то от вход А0 и трябва да комунукира през MAX232 - да праща данните дето ги е получил като резултат.
Немога да намеря в документацията как се се настройва пин като изход / вход , и как се предава сериино към max232 и как се чете... Моля ви да ме насочите към няккави проекти дето го правят тва нещо или някаквъв друг вид помощ като за начинаещ ... |
||||||||||
| Автор: | Cekins [ Пет Дек 29, 2006 6:41 pm ] |
| Заглавие: | |
Ами като за начало ако не си изчел няколко пъти PDF-a на пик-а - направи го докато почне да ти присветва лампичката. Пeриферията на процесора се управлява с регистри - SFR (Special Function Register). Например управлението за вход/изход става с регистрите TRISx (х е порта А, В и т.н.) : TRISB = 15 ще направи старшите четири пина на порта изходи а младшите входове (00001111) - 0 за изход, 1 за вход. По този начин се управлява всяка една периферия. Например за да пуснеш TMR1 (таймер1) се сетва регистъра T1CON бит 0 и т.н. Серийната комуникация е описана в PDF-a на пика - кой регистъра за кво служи и последователността в която става номера. Не е като при компютъра както си свикнал. едит : той компилатора (не съм работил с него и не съм сигурен) трябва да има фукции за изпращане по ком-а |
|
| Автор: | Sonic [ Пет Дек 29, 2006 7:10 pm ] |
| Заглавие: | |
оки - до тук добре SET_TRIS_B( 0xFD ); ми направи вичко входове и само B6 изход ... ама как да предам отчетените данни ? |
|
| Автор: | Predator_MF [ Пет Дек 29, 2006 7:36 pm ] | |||||||||
| Заглавие: | ||||||||||
Краката можеш да ги клатиш по два начина, първия е с функциите set_tris_x (x e a,b,c,d,e или името на порта), input_x , output_x и още няколко, пише ги в документацията. В случая обаче трябва да съобразиш типа порт, който ще ползваш (standart, fast, fixed), което е малко изнервящо. Втория метод за предпочитане, не ползваш тези функции, а просто дефинираш:
Едит: Имаш грешки в схемата - махни MAX232, терминала и виртуалния COM порт в Proteus са съобразени с 5V нива, директно към краката на процесора се закачи. |
||||||||||
| Автор: | Sonic [ Пет Дек 29, 2006 8:37 pm ] |
| Заглавие: | |
каде има форум за CCS - щото като гледам тук - с прочети документациаята прогреса е никакъв - щото ако прочета цялата документация едва ли ще питам ... |
|
| Автор: | Predator_MF [ Пет Дек 29, 2006 8:46 pm ] |
| Заглавие: | |
Те и там ще ти кажат същото...първо четеш - после питаш. Написано е за да се чете. Натискаш F1, пишеш printf и ти изкача моментално описанието на функцията printf, със подробно обяснение как да предадеш променлива по USART в 15 различни типа. |
|
| Автор: | Cekins [ Пет Дек 29, 2006 9:02 pm ] |
| Заглавие: | |
Sonic, не искам да те засегна обаче трябва да знаеш как работи професора - и то не по принцип а конкретния с който искаш да работиш. Затова всички казват прочети документацията. Аз например първата ми работа беше да изчета PDF-ите на прфесорите и тогава да се захващам с програмирането им. А и после като задаваш въпроси знаеш какво питаш. Иначе повечето знаещи в този форум отговарят с RTFM и то в повечето случаи с право. Конкретно за пиковете за начинаещи са полезни книжките на млад консдтруктор. |
|
| Автор: | Sonic [ Пет Дек 29, 2006 9:26 pm ] | |||||||||
| Заглавие: | ||||||||||
незнам как да отговоря за pic16f870 няма нищо почти , камо ли на бг. имам книжката на млад конструктор - но там не се говори зa ccs, а за асемблер, които не предпочитам да го чета... Затова ми се щеше накратко да ми се опише в CCS форма за какво става въпрос ... или поне къде мога да попитам за ccs функциите. а в хелпа на ccs -а явно нещо се е омотало - щото някои неща изобщо не щат да тръгнат. както и да е ... открих си проблема - що нищо неизлиза на серииния порт - щото не съм оравил синхронизацията ... та накрая изкарах нещо на през серииния порт ( симулативно де .. ) ама ето къв е проблема сега:
това вместо да ми изкара "аааа..." ми вади "pppp...." и какъвто и символ да го накарам да ми извади - само "pppp..." ми вади ... |
||||||||||
| Автор: | Dimitar [ Пет Дек 29, 2006 9:43 pm ] |
| Заглавие: | |
Конфигурирането на серийния порт става в 2-3 регистъра, а се предава по него като записваш в един. Приемането става в прекъсване, като четеш от друг регистър - това достатъчно просто ли е |
|
| Автор: | Sonic [ Пет Дек 29, 2006 9:52 pm ] |
| Заглавие: | |
не ми трябва да съм ембедед чак толкова .. предпочитам си pc app dev-а , тия неща ми трябват за няколко проектчета , после ще го изоставя това нещо , а за асемблера - извъобще не ми е от полза да почна сега и да го уча - то мисля че това е и идеята на езиците от високо ниво - какъвто е CCS - да не се интересува човек от асемблера - но документацията е под сякаква критика - само бегло е загатнато как би могло да се употреби нещо - което пак каточе ли нарочно връща човек - да гледа асемблера ... както и да е ... - а защо да излагам филибето - както казах - с микропроцесори се занимавам от около 6-7 часа - когата си инсталирах CCS реално ... ехеххех - не е много - ама пак бива... а до конфигурирането на серииния порт - #use rs232(baud=9600, xmit=PIN_C6, rcv=PIN_C7) това нещо би трябвало да върши всичко ... или ... ? |
|
| Автор: | Ки4о [ Пет Дек 29, 2006 9:55 pm ] |
| Заглавие: | |
Виж бе пич,аз съм мнооого зле със Ц-то и почнах със светодиода (както казава Хищника) и след 10 тина дни подкарах и доста други неща.Не се хвърляй на високо щото само ще губиш време.За хелп - на сайта на фирмата има мн. добър форум така че зарови се в него.Ако не ти не чете- екпериментирай,но само ще загубиш време ако не попрочетеш нещо по темата. Ето примера(от хелпа ) как се чете температурен сензор #if defined(__PCB__) #include <16C56.h> #fuses HS,NOWDT,NOPROTECT #use delay(clock=20000000) #use rs232(baud=9600, xmit=PIN_A3, rcv=PIN_A2) #elif defined(__PCM__) #include <16F877.h> #fuses HS,NOWDT,NOPROTECT,NOLVP #use delay(clock=20000000) #use rs232(baud=9600, xmit=PIN_C6, rcv=PIN_C7) #elif defined(__PCH__) #include <18F452.h> #fuses HS,NOWDT,NOPROTECT,NOLVP #use delay(clock=20000000) #use rs232(baud=9600, xmit=PIN_C6, rcv=PIN_C7) #endif #define DAL_SCL PIN_B0 #define DAL_SDA PIN_B1 #include <ds1621.c> void main() { BYTE value; init_temp(); do { value = read_temp(); printf("%u\r\n",value); delay_ms(1000); } while (TRUE); } ТАКА ЧЕ СЕ ПОРАЗРОВИ ВЪВ ХЕЛПА !!! |
|
| Автор: | Sonic [ Пет Дек 29, 2006 10:15 pm ] |
| Заглавие: | |
незнам с каква функция за налучкване ми изкара тоя пример ... ама явно е неуспешен опит - нито се занимавам с посочените пикове , нито обработвам one wire устройства... а безсмислени примери мога да си открия доста ... мерси - ако и следващите "помощи" са от този тип - моля не ми помагаите ... |
|
| Автор: | Dimitar [ Пет Дек 29, 2006 10:21 pm ] | |||||||||
| Заглавие: | ||||||||||
Това е идеята, ама да пишеш програмки за РС - за пик-вете е малко по-друга тая идея #use rs232(baud=9600, xmit=PIN_C6, rcv=PIN_C7) - освен това някъде трябва да кажеш колко бита предаваш, колко стоп бита ползваш и има ли контрол по четност или няма. Същите тия неща трябва да кажеш и порта на РС-то (и скоростта + Flow control-a ). Като го направиш това може и да приемеш с РС-то правилната буква ПП. И аз съм от Филебето |
||||||||||
| Автор: | Sonic [ Пет Дек 29, 2006 10:28 pm ] |
| Заглавие: | |
еййй - дам - верно че никаде не се описва какви пакети предавам ... ся ще вида ... |
|
| Страница 1 от 3 | Часовете са според зоната UTC + 2 часа [ DST ] |
| Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group http://www.phpbb.com/ |
|