Отговори на тема  [ 9 мнения ] 
програма от CSS на мплаб 
Автор Съобщение
Ранг: Напреднал
Ранг: Напреднал

Регистриран на: Чет Авг 21, 2008 2:52 pm
Мнения: 476
Местоположение: Пловдив
Мнение програма от CSS на мплаб
здравейте,
пренаписвам една програма от CSS на мплаб и въпроса ми е дали мога да намеря къде са тези стандартните фунйцики на CSS
като output_bit(), shift_left()... Дали ги има някъде разписани в директориите на CSS ?


Сря Окт 27, 2010 1:36 pm
Профил
Ранг: Форумен бог
Ранг: Форумен бог
Аватар

Регистриран на: Пет Фев 25, 2005 1:58 pm
Мнения: 4585
Местоположение: US
Мнение Re: програма от CSS на мплаб
sukhoi написа:
здравейте,
пренаписвам една програма от CSS на мплаб и въпроса ми е дали мога да намеря къде са тези стандартните фунйцики на CSS
като output_bit(), shift_left()... Дали ги има някъде разписани в директориите на CSS ?



Няма ги, но можеш да видиш в генерирания листинг какво правят, после си правиш макроси или inline функции.

А какъв е този език MPLAB ?? :)

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


Сря Окт 27, 2010 4:50 pm
Профил WWW
Ранг: Напреднал
Ранг: Напреднал

Регистриран на: Чет Авг 21, 2008 2:52 pm
Мнения: 476
Местоположение: Пловдив
Мнение 
да няма такъв език прав си :)

и да попитам защо се генерира така това примерно
Цитат:
.................... output_high(DAC_LDAC);
0008: BSF 03.5
0009: BCF 06.4
000A: BCF 03.5
000B: BSF 06.4


а не само

0008: BSF 03.5
000B: BSF 06.4

примерно


Сря Окт 27, 2010 9:35 pm
Профил
Ранг: Форумен бог
Ранг: Форумен бог
Аватар

Регистриран на: Пет Фев 25, 2005 1:58 pm
Мнения: 4585
Местоположение: US
Мнение 
Цитат:
.................... output_high(DAC_LDAC);
0008: BSF 03.5 ; bsf STATUS,RP0 ; bank1
0009: BCF 06.4 ; bcf TRISB,4 ; make portb.4 to be output
000A: BCF 03.5 ; bcf STATUS,RP0 ; bank0
000B: BSF 06.4 ; bsf PORTB,4 ; set portb.4 to high level


Компилатора имаше някаква опция, която проеменяше output_high() и подобните, така че само
сетваше PORTB пина, без да пипа TRISB. Не си спомням коя беше, погледни в документацията,
ако те интересува, ще спестиш 3 излишни инструкции.

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


Сря Окт 27, 2010 9:44 pm
Профил WWW
Ранг: Напреднал
Ранг: Напреднал

Регистриран на: Чет Авг 21, 2008 2:52 pm
Мнения: 476
Местоположение: Пловдив
Мнение 
мерси за бързия отговор...но не мога да разбера как на адрес 06h веднъж е TRISB а другия път е PORTB[/quote]


Сря Окт 27, 2010 9:52 pm
Профил
Ранг: Форумен бог
Ранг: Форумен бог
Аватар

Регистриран на: Сря Апр 20, 2005 12:02 pm
Мнения: 9119
Местоположение: Разград
Мнение 
Ами не е - сменя банките :)


Сря Окт 27, 2010 9:53 pm
Профил ICQ
Ранг: Форумен бог
Ранг: Форумен бог
Аватар

Регистриран на: Пет Фев 25, 2005 1:58 pm
Мнения: 4585
Местоположение: US
Мнение 
sukhoi написа:
мерси за бързия отговор...но не мога да разбера как на адрес 06h веднъж е TRISB а другия път е PORTB
[/quote]
Един път е на адрес 0x06 ( PORTB ), друг път е на адрес 0x86 ( TRISB ), определя се от бита STATUS.RP0 ( и RP1 ако има повече от 2 банки с памет )

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


Сря Окт 27, 2010 9:55 pm
Профил WWW
Ранг: Напреднал
Ранг: Напреднал

Регистриран на: Чет Авг 21, 2008 2:52 pm
Мнения: 476
Местоположение: Пловдив
Мнение 
да...значи последен въпрос с което дано ми се изясни всичко по това...значи като избера примерно втора банка, адресите на регистрите мога да си ги броя пак от 0x00 и така TRISB ми се пада пак 0x06, a не както реално е на адрес 0x86


Сря Окт 27, 2010 10:02 pm
Профил
Ранг: Форумен бог
Ранг: Форумен бог
Аватар

Регистриран на: Сря Апр 20, 2005 12:02 pm
Мнения: 9119
Местоположение: Разград
Мнение 
Всичко това го има писано в даташитите на всички 16-ки. Командата на процесора е 14 битова и може да адресира директно 7 бита (0х00 до 0х7F). За да може да адресира повече в статус регистъра има 1(2 и т.н.) бита BSR - Bank Select Register - те са дефакто старшите битове на адреса от рама. За съжаление с 16-ките е така. 18-ките са мааалко по добре - половината инструкции могат да адресират директно всеки адрес. И затова Пи джитка само на 32-ки :)


Сря Окт 27, 2010 10:11 pm
Профил ICQ
Покажи мненията от миналия:  Сортирай по  
Отговори на тема   [ 9 мнения ] 

Кой е на линия

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


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

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