| Автор |
Съобщение |
|
kirchi
Ранг: Минаващ
Регистриран на: Сря Яну 03, 2007 8:52 pm Мнения: 89 Местоположение: Димитровград
|
 От asm на С
Това bsf STATUS,RP0 как ще стане на Сл Много благодаря за помоща.
|
| Нед Яну 14, 2007 5:50 pm |
|
 |
|
VSU
Ранг: Напреднал
Регистриран на: Нед Авг 14, 2005 1:08 pm Мнения: 433 Местоположение: Казанлък
|
например на HI-TECH ще стане
RP0 = 1;
само че компилатора си се грижи сам да адресира банките с променливите така това не би трябвало да е твоя грижа
|
| Нед Яну 14, 2007 6:24 pm |
|
 |
|
kirchi
Ранг: Минаващ
Регистриран на: Сря Яну 03, 2007 8:52 pm Мнения: 89 Местоположение: Димитровград
|
Мерси много. 
|
| Нед Яну 14, 2007 6:32 pm |
|
 |
|
ToHu
Ранг: Форумен бог
Регистриран на: Нед Сеп 26, 2004 9:21 pm Мнения: 30686 Местоположение: София
|
Като цяло вярно, но по скоро трябва да знаеш как става по принцип.
Преди да работиш би трябвло да деклрираш като битова променлива, например в Keil
sbit RP0 = 0x03^5
или
#define STATUS 0x03
#define RP0 5
sbit RP0 = STATUS^RP0
|
| Нед Яну 14, 2007 8:19 pm |
|
 |
|
kirchi
Ранг: Минаващ
Регистриран на: Сря Яну 03, 2007 8:52 pm Мнения: 89 Местоположение: Димитровград
|
Ааааааааааааааааа ясно, Аз се чудя що ми дава грешка.
|
| Нед Яну 14, 2007 10:39 pm |
|
 |
|
kirchi
Ранг: Минаващ
Регистриран на: Сря Яну 03, 2007 8:52 pm Мнения: 89 Местоположение: Димитровград
|
А как да напиша RB0 да стане 1.
|
| Нед Яну 14, 2007 10:46 pm |
|
 |
|
ToHu
Ранг: Форумен бог
Регистриран на: Нед Сеп 26, 2004 9:21 pm Мнения: 30686 Местоположение: София
|
Значи това са неща зависимо от компилатора, както колегат по горе спомена RP0=0 в HiTech сигурно работи, защото в модела на процесора имам деклараия че той е бит 5 на статус регистъра.
Тва трябва да напрвиш за всички битови променливи които искаш д ауправялваш по този начин.
B.0 ти е бит 0 на порт 0х06, естетвено тук все говоря за 16-та серия. Т.е.
sbit RB0=0x06^0
също така можеш директно да пишеш по порта с байтови команди, в твоиа случай трябва да направиш AND с 0xFE, това на асемблер се компилира като andlf, koeto което обаче е макрос и отнема повече време за изпълнение от bcf.
едит.
кой компилатор ползваш между другото?
|
| Нед Яну 14, 2007 11:58 pm |
|
 |
|
kirchi
Ранг: Минаващ
Регистриран на: Сря Яну 03, 2007 8:52 pm Мнения: 89 Местоположение: Димитровград
|
Това не го знаех. Компилатора е CCS_PCWH_v4.020.
|
| Пон Яну 15, 2007 12:26 am |
|
 |
|
Predator_MF
Ранг: Форумен бог
Регистриран на: Чет Окт 07, 2004 1:22 pm Мнения: 1949 Местоположение: София
|
В CCS дефинираш бит или байт от портовете така
|
| Пон Яну 15, 2007 2:54 am |
|
 |
|
kirchi
Ранг: Минаващ
Регистриран на: Сря Яну 03, 2007 8:52 pm Мнения: 89 Местоположение: Димитровград
|
Дава ми грешки-A numeric expression must appear here
|
| Пон Яну 15, 2007 6:25 pm |
|
 |
|
Predator_MF
Ранг: Форумен бог
Регистриран на: Чет Окт 07, 2004 1:22 pm Мнения: 1949 Местоположение: София
|
И къде е точно това "here" ??
|
| Пон Яну 15, 2007 7:19 pm |
|
 |
|
kirchi
Ранг: Минаващ
Регистриран на: Сря Яну 03, 2007 8:52 pm Мнения: 89 Местоположение: Димитровград
|
|
| Пон Яну 15, 2007 7:56 pm |
|
 |
|
Predator_MF
Ранг: Форумен бог
Регистриран на: Чет Окт 07, 2004 1:22 pm Мнения: 1949 Местоположение: София
|
Тая грешка ще ти я дава, защото дефинираш #byte/#bit в тялото на функция - постави ги в началото .c или .h файла
|
| Пон Яну 15, 2007 8:55 pm |
|
 |
|
kirchi
Ранг: Минаващ
Регистриран на: Сря Яну 03, 2007 8:52 pm Мнения: 89 Местоположение: Димитровград
|
Аааааааа леееееее, много мерси 
|
| Пон Яну 15, 2007 8:59 pm |
|
|