Отговори на тема  [ 36 мнения ]  Отиди на страница Предишна  1, 2, 3  Следваща
PIC 16F84 BSF С ПРОМЕНЛИВА ЗА БИТА 
Автор Съобщение
Ранг: Минаващ
Ранг: Минаващ
Аватар

Регистриран на: Нед Фев 04, 2007 5:44 pm
Мнения: 90
Мнение 
Благодаря ти Dimitar, само че аз тъпия дето си нямам представа от асемлер успях да го направя това което Вие умните ме убеждавате , че е било невъзможно... Вярно , че се занимвам от 2 дена с асемблер, но за два дни май успях да постигна нещо което всеки ме убеждава че е невъзможно. На мен никога не ми се беше налагало да използвам регистрите по този начин до сега , и когато попитах за нещо конкретно я погледни дали има конкретен отговор или всичко е само обща теория за асемблер и пикове... :? И всеки пише по какв друг начин мойе да стане ... Мисля , че няма някой който да се занимава с пикове и да не знае стандартните начини .
Аре стига толкова глупост. Няма ли някой който да изтрие цялата тема...
Обърнахме го на караница.
За последен пат се спирам на моята програма и тук мисля да не пиша повече. В общи линии имам няколко датчика които са 1-wire закачени на една линия. Всичко си работеше много добре докато реших да преместя единиа на друг пин на пика. И за да не преправям тотално около 400-500 реда код реших да пробвам нещо по-нестандартно. Е.. все пак стана с предефиниране на константите, а не с преправяне на толкова код, че и с една камара сметки колко операции са изваршени и колко нопа трябва да сложа или да викам директно подпрограма за закъснение и колко да бъде то.

EDDIESoft


Чет Юни 28, 2007 4:39 pm
Профил ICQ
Ранг: Почетен член
Ранг: Почетен член
Аватар

Регистриран на: Съб Сеп 17, 2005 5:07 pm
Мнения: 813
Местоположение: Сливен
Мнение 
eddiesoft написа:
.....


Дано клиента ти е търпелив и непретенциозен че така както си я подкарал......... с писане във флаша повреме на работа на процесора ........ не ми се мисли след година работа на бъдещето ти устройство какви ще са резултатите

Ама какво да се прави жегата размътва мозъците на хора като нас :))) особенно на новобранците ..


Чет Юни 28, 2007 5:21 pm
Профил ICQ
Ранг: Форумен бог
Ранг: Форумен бог
Аватар

Регистриран на: Пет Ное 12, 2004 3:38 pm
Мнения: 9103
Местоположение: Chicago, IL
Мнение 
Какво си постигнал, дето те убеждаваме, че е невъзможно - направи си програмата, като смени константата, а не като използваше променлива. Я се върни на първия си пост да видиш какво си питал и тогава ми разправяй какви невъзможни неща си постигнал. Баси - много обичам такива като теб, дето питат нещо и после почват да разправят на хората, дето им отговарят колко са се объркали. В крайна сметка пък всеки си е свободен да си мисли и прави каквото иска, така че успех от тук нататък в правенето на "невъзможни" неща 8) .


Чет Юни 28, 2007 5:22 pm
Профил
Ранг: Форумен бог
Ранг: Форумен бог
Аватар

Регистриран на: Нед Окт 31, 2004 9:19 pm
Мнения: 4464
Местоположение: Stara Zagora
Мнение 
eddiesoft е нашия нов учител.
За 2 дни усвоява асемблера. Представете си какво ще е ако му отдели не 2 а 20 дни.
Къде сте тръгнали вие с закостенелите си мозъци да му давате акъл. При него се ходи за съвет и то с наведена глава за да не го погледнете в очите.Мъдроста лъхаща оттам ще ви изгори ако го погледнете.
:prayer: :prayer: :prayer: :prayer: :prayer: :prayer: :prayer: :prayer: :prayer: :prayer: :prayer: :prayer:
И не си помисляйте да оспорвате това което ви казва. Вие невиждащите по далече от носа си не може да знаете нещо което той летящия в небесата не знае. И се засрамете.
И пак поклон
:prayer: :prayer: :prayer: :prayer: :prayer: :prayer: :prayer: :prayer: :prayer: :prayer: :prayer: :prayer:


Чет Юни 28, 2007 6:25 pm
Профил
Ранг: Новодошъл
Ранг: Новодошъл
Аватар

Регистриран на: Вто Ное 16, 2004 3:29 pm
Мнения: 108
Местоположение: София
Мнение 
eddiesoft написа:
Благодаря ти Dimitar, само че аз тъпия дето си нямам представа от асемлер успях да го направя това което Вие умните ме убеждавате , че е било невъзможно... Вярно , че се занимвам от 2 дена с асемблер, но за два дни май успях да постигна нещо което всеки ме убеждава че е невъзможно. На мен никога не ми се беше налагало да използвам регистрите по този начин до сега , и когато попитах за нещо конкретно я погледни дали има конкретен отговор или всичко е само обща теория за асемблер и пикове... :? И всеки пише по какв друг начин мойе да стане ... Мисля , че няма някой който да се занимава с пикове и да не знае стандартните начини .
Аре стига толкова глупост. Няма ли някой който да изтрие цялата тема...
Обърнахме го на караница.
За последен пат се спирам на моята програма и тук мисля да не пиша повече. В общи линии имам няколко датчика които са 1-wire закачени на една линия. Всичко си работеше много добре докато реших да преместя единиа на друг пин на пика. И за да не преправям тотално около 400-500 реда код реших да пробвам нещо по-нестандартно. Е.. все пак стана с предефиниране на константите, а не с преправяне на толкова код, че и с една камара сметки колко операции са изваршени и колко нопа трябва да сложа или да викам директно подпрограма за закъснение и колко да бъде то.

EDDIESoft


Можели да ни покажеш какво си написал на ASM и на друг език, който ползваш, защото това което казва Dimitar е вярно и спор няма.

Dimitar написа:
eddiesoft - от всякъде се видя, че си нямаш понятие от асемблера на пиковете, нито какво е това опкод и как стават нещата там. Така, че раздавай го малко по-леко с поученията, защото на следващия ти тъп въпрос никой няма да отговори. Факт е, че всички бяха много внимателни и се опитаха да ти обяснят защо неможеш да променяш ПРОГРАМНАТА ПАМЕТ в хода на изпълнение на програмата, ама ти си знаеш твоето. bsf f,b - и трите неща са константи в тая памет и неможеш да ги променяш посмъртно. Има си инструкции в тоя асемблер дето работят с регистри и клетки в рам-а, има си и такива дето работят с константи. В случая bsf e такава, дето работи с константа и въпреки твоите мераци, тя няма как да почне да работи с променлива. Та вземи да четеш книжките дето ги купуваш, вместо да ги снимаш и да ни ги показваш на нас, от които искаш съвети :) .


Но мисля че има огромни разногласия, интересно ми е това за което говори Dimitar как си го направил runtime да се променя.
Ако видим работещия код ще ни стане на всички ясно какво си искал да постигнеш и как си го постигнал щом ти върши работа.


Последна промяна i_dachev на Чет Юни 28, 2007 7:06 pm, променена общо 1 път



Чет Юни 28, 2007 6:34 pm
Профил WWW
Ранг: Новодошъл
Ранг: Новодошъл
Аватар

Регистриран на: Вто Ное 16, 2004 3:29 pm
Мнения: 108
Местоположение: София
Мнение Re: PIC 16F84 BSF С ПРОМЕНЛИВА ЗА БИТА
eddiesoft написа:
Срещнах следният проблем:
при bsf PORTA, X , когато Х ми е декларирана като константа всичко си работи нормално, но когато е декларирана като променлива ми изпълнява bsf PORTA,0 без значение каква стойност имам записана в Х. Някой сблъсквал ли се е с подобен проблем?


EDDIESoft


Искам да видя какво си направил, защото от това което си написал
аз разбирам, че искаш да направиш това:

CHANGE(X) {
...
bsf PORTA, X
...
}

И викаш някъде из кода ти следното нещо:

...
call CHANGE(5);
...
call CHANGE(6);
...


Чет Юни 28, 2007 7:01 pm
Профил WWW
Ранг: Минаващ
Ранг: Минаващ
Аватар

Регистриран на: Нед Фев 04, 2007 5:44 pm
Мнения: 90
Мнение 
Иаааа учудващо. Някой е разбрал какво питам ... И то кой ме рабра?!!! Човек който не е с титлата "Форумен бог". Да i_dachev, това ми беше идеята дали може да стане. Писал съм го на асемблер който не разбирам и там нещата изглеждаха горе-долу така
movlw 1
movwf X
call change
movlw 0
movwf X
call change
...
change
...
bsf PORTA,X
....
bcf PORTA,x
....
return

А цялата дандания стана по простата причина, че бяха закачени два датчика (един температурен и един RTC) на PORTA,0 и всичко си работеше перфектно (като изключим че си играх с времената с по някоя и друга микросекунда за да тръгнат и дяата стабилно). В един момент понеже ми остана един свободен крак на процесора реших да преместя там единия датчик за да намаля кода на програмата ( пропускам четенето на серийните номера в този случай) и уви се сблъсках с този проблем. До сега за толкова време не ми се беше налагало да използвам някой регистър по този начин. Използвам си традиционните начини с маски ротации, и т.н. които в по-горните постове накои подробно обясняват. Да , с тях става, но трябва да се променя доста код в моя слуай, а аз реших да го избягна това. В интерес на истината устройството вече е предадено на клиента и си работи с двата датчика на една линия още по средата на спора ни тук. платките така или иначе бяха направени така че да са и двата датчика на една линия .


С увайение към "Форумните богове"
EDDIESoft


Пет Юни 29, 2007 12:51 pm
Профил ICQ
Ранг: Форумен бог
Ранг: Форумен бог
Аватар

Регистриран на: Чет Окт 07, 2004 1:22 pm
Мнения: 1949
Местоположение: София
Мнение 
Явно всичките mikroPascal-ци са такива инати :D
Човек като ти чете мненията да се чуди наистина ли си на 38...или на 15, само 15 годишен би се издразнил или впечатлил от лейбъла под броя мнения, аз лично видях отговор на въпроса ти още в първото мнение, видях го и още много пъти след това.


Последна промяна Predator_MF на Пет Юни 29, 2007 6:09 pm, променена общо 1 път



Пет Юни 29, 2007 1:32 pm
Профил
Ранг: Новодошъл
Ранг: Новодошъл
Аватар

Регистриран на: Вто Ное 16, 2004 3:29 pm
Мнения: 108
Местоположение: София
Мнение 
Еddiesoft но как си го направил наистина :) ако не е тайна?
Мисля че разбра, че няма как да накараш по-време на изпълнението
да се смени програмната памет за това не става толкова лесно.
(то има как ама не е целесъобразно и не на всички PIC-ове става)

Според мен става така ако не искаш да го правиш с маски и други отделни променливи:

if (X == 0) {
bsf PORTA, 0;
} else if (X == 1) {
bsf PORTA, 1
}

(естествено if-овете са на ASM аз ги написах така за по прегледно)


Пет Юни 29, 2007 2:06 pm
Профил WWW
Ранг: Ориентиран
Ранг: Ориентиран

Регистриран на: Пон Дек 12, 2005 6:03 pm
Мнения: 263
Местоположение: София
Мнение 
гледам, гледам темата и не се сдържах да не пиша :) не мога да се начудя на eddiesoft, ама в един момент ми щракна как го е направил - сигурно е хванал някой неизвестен бъг на PIC-овете превърнал се във feature :)

А може би PIC-а е изпаднал в някаква недетерминираност, която незнайно защо, работи точно както го искаш да работи и точно както си го представяш.

Сериозно eddiesoft, виж там, прочети нещо за PIC-овете, особено глава instruction set. Не те знам на какво си писал друго освен на асемблер-а от два дни, но има някой фундаменти, които трябва да си припомниш.


Пет Юни 29, 2007 2:15 pm
Профил ICQ YIM
Ранг: Форумен бог
Ранг: Форумен бог
Аватар

Регистриран на: Сря Апр 27, 2005 12:48 pm
Мнения: 6094
Мнение 
До колкото разбрах - пита: дали PIC имат индексно(променлива) адресиране на битовe.... за съжаление НЯМАТ(много малко контролери подържат такава далавера)

bsf PORTх, BIT ( BIT винаги е константа )


Пет Юни 29, 2007 2:17 pm
Профил ICQ
Ранг: Форумен бог
Ранг: Форумен бог
Аватар

Регистриран на: Нед Окт 31, 2004 9:19 pm
Мнения: 4464
Местоположение: Stara Zagora
Мнение 
Абе казвам ви аз да му се поклоните а не да се пробвате акъл да му давате ама никой не слуша :):)
Човека програмно промени хардуера на пика. Къде сте тръгнали вие :)
И не му се сърдете че е раздразнителен,гениите са ексцентрични. Така пише по книгите :):)


Пет Юни 29, 2007 2:27 pm
Профил
Ранг: Почетен член
Ранг: Почетен член
Аватар

Регистриран на: Съб Сеп 17, 2005 5:07 pm
Мнения: 813
Местоположение: Сливен
Мнение 
eddiesoft написа:
EDDIESoft


:prayer: :prayer: :prayer: :prayer: :prayer: :prayer: :prayer: :prayer: :prayer: :prayer: :prayer:

АМИН


Пет Юни 29, 2007 3:54 pm
Профил ICQ
Ранг: Форумен бог
Ранг: Форумен бог
Аватар

Регистриран на: Пет Фев 25, 2005 1:58 pm
Мнения: 4585
Местоположение: US
Мнение 
Хи-хи, тази сутрин се развеселих от тази тема :D
Като идея да може да се променя бита в операнда по време на работа е готина идея. Ще трябва да се предложи на МайкроЧеп :-)

_________________
Ето аз дишам, работя, живея и програми пиша тъй както умея, с проца под вежди се гледаме строго и боря се с него доколкото мога....


Пет Юни 29, 2007 4:34 pm
Профил WWW
Ранг: Популярен
Ранг: Популярен
Аватар

Регистриран на: Съб Дек 10, 2005 11:44 am
Мнения: 326
Местоположение: Lake Geneva Shoreline
Мнение 
Хм, това ако наистина е проработило е голям парадокс. Откога F84 може да си пише по флаша? И откога асемблера разбира такива "променливи"?

_________________
Manners maketh man.


Пет Юни 29, 2007 6:40 pm
Профил
Покажи мненията от миналия:  Сортирай по  
Отговори на тема   [ 36 мнения ]  Отиди на страница Предишна  1, 2, 3  Следваща

Кой е на линия

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


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

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