Отговори на тема  [ 26 мнения ]  Отиди на страница 1, 2  Следваща
въпрос за port b 
Автор Съобщение
Ранг: Популярен
Ранг: Популярен

Регистриран на: Пет Ное 26, 2004 9:50 pm
Мнения: 374
Мнение въпрос за port b
мъча се да пиша програми на CCS и искам да направя бягаща всетлиина с 16ф84а, но не знам как да дадинирам port b, в смисъм, искам да завъртя съдържанието му например надясно с функцията rotate_roght(?, ?) - та въпросът ми е какво трябва да се напише на "?, ?". написах го така rotate_right(port_b, 8), но ми изкарва undefined identifier port_b. това ме води на мисълта, че трябва да до дефинирам преди това. ето го целия ми код

#include<16f84a.h>
#use delay(clock=4000000)
main() {
set_tris_b(0x00);
output_high(PIN_B0);
while(TRUE) {
rotate_right(port_b, 8);
}
}

може би имам грешка някъде. може ли да ми помогнете?


Чет Дек 30, 2004 10:01 pm
Профил
Ранг: Форумен бог
Ранг: Форумен бог
Аватар

Регистриран на: Пет Ное 12, 2004 3:38 pm
Мнения: 9103
Местоположение: Chicago, IL
Мнение 
Виж как е дефиниран в 16f84a.h. И сложи някъкво закъснение след това rotate, щото трудно ще видиш как бягат светлините.


Чет Дек 30, 2004 10:05 pm
Профил
Ранг: Популярен
Ранг: Популярен

Регистриран на: Пет Ное 26, 2004 9:50 pm
Мнения: 374
Мнение 
гледах, пак гледах, не виждам да е написано някъде. пробвах с portb, port_b, port b, ама никое не става. ти как би го направил. сигурен съм че го знаеш, но се правиш на разсеян.


Чет Дек 30, 2004 11:10 pm
Профил
Ранг: Форумен бог
Ранг: Форумен бог
Аватар

Регистриран на: Пет Ное 12, 2004 3:38 pm
Мнения: 9103
Местоположение: Chicago, IL
Мнение 
Не се правя на разсеян, предполагам (не съм ползвал тоя компилатор), че трябва да е дефиниран в h файла. Ако не е - си го дифенирай, или пък във функцията му напиши адреса направо (ако не се лъжа 0x06).


Чет Дек 30, 2004 11:30 pm
Профил
Ранг: Форумен бог
Ранг: Форумен бог
Аватар

Регистриран на: Чет Окт 07, 2004 1:22 pm
Мнения: 1949
Местоположение: София
Мнение 
Във дефинициите на програмата добави следното:
Код:
#byte port_b = 0x06;
.
Оттук нататък всяка стойност която даваш на port_b ще се записва директно във регистър 0x06 (това е физическия адрес на port B)... Примерно:
Код:
port_b = 0b00000001; //RB7..1 = 0, RB0 = 1


Инструкциите rotate_left/rotate_right имат следния синтаксис:

Цитат:
rotate_left (address, bytes)
rotate_right (address, bytes)
.
Така де, 'address is a pointer to memory' го пише в хелпа на CCS-а...това значи че там трябва да поставиш показател към адрес (т.е 0x06, или както вече е дефинирано "port_b")... Това е начина....А ако искаш по-лесно и бързо да научиш CCS-а ти препоръчвам да си изтеглиш plug-in-а за MPLAB, за да можеш да симулираш работата на контролера докато си пишеш...Аз така почнах, щото имах проблеми.....той CCS-а понякога не прави това което трябва....


Пет Дек 31, 2004 1:14 pm
Профил
Ранг: Популярен
Ранг: Популярен

Регистриран на: Пет Ное 26, 2004 9:50 pm
Мнения: 374
Мнение 
rotate_left(address, bytes) - на мястото на bytes какво трабва да напиша, защото ми искарва някаква грешка. пробвах с 0, 1 ,8, ама не става. можеш ли да ми обясниш малко по-подробно. то се видяло че от мен програмист няма да стане, но поне искам да имам обща представа. от къде може да си изтегля plug-in-а за MPLAB. аз MPLAB я имам. версията и е 6.20, нали ще ми свърши работа? ако може дай линк към plug-in-а. а как да дефинирам portA. какъв му е адресът?


Пет Дек 31, 2004 2:30 pm
Профил
Ранг: Форумен бог
Ранг: Форумен бог
Аватар

Регистриран на: Пет Ное 12, 2004 3:38 pm
Мнения: 9103
Местоположение: Chicago, IL
Мнение 
elektronchika написа:
rotate_left(address, bytes) - на мястото на bytes какво трабва да напиша, защото ми искарва някаква грешка. пробвах с 0, 1 ,8, ама не става...

Трябва да е колко пъти искаш да въртиш в съответната посока, т.е. при 1 - RB0 отива на RB1 или RB7 в зависимост от посоката, при 2 - на RB2 или RB6 и т.н.


Пет Дек 31, 2004 2:39 pm
Профил
Ранг: Форумен бог
Ранг: Форумен бог
Аватар

Регистриран на: Чет Окт 07, 2004 1:22 pm
Мнения: 1949
Местоположение: София
Мнение 
Простичко: rotate_left(port_b,x) - завърта port_b 1-път на ляво в рамките на x байта.....Трудно ми е точно в момента да го обясня (31 декември е :lol: )...Напиши 1 там, пък догодина ще ти обясним...просто е повервай...Ако питаш мене - остави тая работа и заминавай да празнуваш...


Пет Дек 31, 2004 2:44 pm
Профил
Ранг: Популярен
Ранг: Популярен

Регистриран на: Пет Ное 26, 2004 9:50 pm
Мнения: 374
Мнение 
а може ли да ми дадеш само едно линк-че към plug-in-а за MPLAB 6.20, дето стана на дума по-горе, че имам доста свободен трафик, а днес е последният ден от месеца, а съм си платил вече интернета и не искам да си губя байтовете. и какъв е адреса на porbA? само това искам. мерси!


Пет Дек 31, 2004 3:36 pm
Профил
Ранг: Форумен бог
Ранг: Форумен бог
Аватар

Регистриран на: Пет Ное 12, 2004 3:38 pm
Мнения: 9103
Местоположение: Chicago, IL
Мнение 
elektronchika написа:
...и какъв е адреса на porbA?...

0x05. Ти Acrobat Reader знаеш ли случайно какво е 8) ?


Пет Дек 31, 2004 3:41 pm
Профил
Ранг: Популярен
Ранг: Популярен

Регистриран на: Пет Ное 26, 2004 9:50 pm
Мнения: 374
Мнение 
в смисъл? знам какво е. защо?


Пет Дек 31, 2004 4:02 pm
Профил
Ранг: Форумен бог
Ранг: Форумен бог

Регистриран на: Нед Сеп 26, 2004 9:21 pm
Мнения: 30685
Местоположение: София
Мнение 
Ами изтегли и прочети pdf-а за съответниа процесор, ам си пие всичко относно адреси ..... и разни други неща които е задължително да знаеш за да работиш с микроконтролера


Пет Дек 31, 2004 4:24 pm
Профил
Ранг: Популярен
Ранг: Популярен

Регистриран на: Пет Ное 26, 2004 9:50 pm
Мнения: 374
Мнение 
аз го имам datasheet-а, но се чудех какви са тези адреси. е, вече знам. информацията ви ми беше много полезна. благодаря!


Пет Дек 31, 2004 4:52 pm
Профил
Ранг: Популярен
Ранг: Популярен

Регистриран на: Пет Ное 26, 2004 9:50 pm
Мнения: 374
Мнение 
аз вече plug-in си изтеглих, но след като го инсталирах и направих отметката на mlpab-а за ccs какво трабва да направя, за да мога да го ползвам. малко не мога да се оправям с тези програми, така че ако някой може да ми помогне, няма да е зле. благодаря!


Съб Яну 01, 2005 8:15 pm
Профил
Ранг: Ориентиран
Ранг: Ориентиран
Аватар

Регистриран на: Съб Сеп 25, 2004 4:33 pm
Мнения: 273
Местоположение: София
Мнение 
Електрончика, ще ти кажа, че CCS не е кой знае колко, удобен за работа компилатор. Ок мощен е, но повечето му екстри просто не се ползват. В някои отношения ми се вижда недодялан.
Много по-удобен за работа е mikroPascal. Безплатната версия компилира до 2 KB HEX, което ще ти е достатъчно според мен. Там няма да ти се налага да пишеш излишни редове като:
#byte PortB = 0x06;
защото компилатора много добре си знае какво е PortB.

_________________
Adios
Mozfet


Нед Яну 02, 2005 9:47 pm
Профил
Покажи мненията от миналия:  Сортирай по  
Отговори на тема   [ 26 мнения ]  Отиди на страница 1, 2  Следваща

Кой е на линия

Потребители разглеждащи този форум: 0 регистрирани и 1 госта


Вие не можете да пускате нови теми
Вие не можете да отговаряте на теми
Вие не можете да променяте собственото си мнение
Вие не можете да изтривате собствените си мнения
Вие не можете да прикачвате файл

Търсене:
Иди на:  
Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group.
Designed by ST Software for PTF.
Хостинг и Домейни