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

Регистриран на: Пет Авг 25, 2006 11:31 pm
Мнения: 168
Местоположение: Русе
Мнение Как да пренасочвам портове
Искам да запитам на асемблер как мога да разменя изходи на микроконтролер.
Вероятно не се изразявам точно , затова ще дам пример:

Ако portB0,1,2 са изходи и изпълня командата:
movlw 0x6
movwf PORTB
Ще имам на PORTB0 лог.0, на PORTB1 лог.1 и на PORTB2 лог.1

Въпроса е как примерно PORTB1 и PORTB2 да ги пренасоча към PORTD 5 и 6.
т.е винаги когато трябва да излиза на PORTB1 i 2 да излиза на PORTD 5 и 6.
Или на кратко PORTB да е съставен от PORTB0, PORTD5 и PORTD6

Дано съм успял да обясня какво искам


Чет Дек 08, 2011 1:00 pm
Профил
Ранг: Ориентиран
Ранг: Ориентиран

Регистриран на: Вто Фев 06, 2007 2:45 am
Мнения: 263
Мнение Re: Как да пренасочвам портове
Няма такъв филм. Всеки порт се пише поотделно, във всеки каквото трябва.


Чет Дек 08, 2011 3:43 pm
Профил
Ранг: Форумен бог
Ранг: Форумен бог
Аватар

Регистриран на: Пет Май 01, 2009 4:01 pm
Мнения: 1438
Мнение Re: Как да пренасочвам портове
Значи вместо в PortB резултата го записваш в един регистър(TempB). От тоя регистър искаш bit 0 да отиде на PortB,0, bit 1 да отиде на PortD,5 а bit 3 да отиде на PortD,6. Ето ти решение, при като останалите битове в двата порта няма да бъдат засегнати.

Код:
   MOVLW    0x06             ;B'00000110'
   MOVWF    TempB

   MOVLW    B'00000001'      ;маска
   ANDWF    TempB, W         ;взимаш само bit0
   IORWF    PORTB,F          ;и го записваш в PORTB,0
   MOVF     TempB, W         ;
   SWAPF    TempB, F         ;bit2 отива на bit6 а bit1 отива на bit5
   MOVLW    B'01100000'      ;маска
   ANDWF    TempB, W         ;взимаш bit6 и bit5
   IORWF    PORTD, F         ;и ги записваш в PORTD,6 и PORTD,5


Чет Дек 08, 2011 6:14 pm
Профил
Ранг: Форумен бог
Ранг: Форумен бог

Регистриран на: Нед Дек 19, 2004 6:26 pm
Мнения: 1628
Местоположение: Сливен
Мнение Re: Как да пренасочвам портове
Ако идеята ти е да става едновременно сетването на битове по различни портове - няма как да стане.


Чет Дек 08, 2011 6:33 pm
Профил ICQ
Ранг: Форумен бог
Ранг: Форумен бог

Регистриран на: Сря Юли 11, 2007 10:16 am
Мнения: 1730
Мнение Re: Как да пренасочвам портове
Това което искаш го има реализирано хардуерно в Atxmega контролерите.
Нарича се virtualPort, който го "мапваш" към някой реален такъв.
За пик не съм виждал подобно нещо.


Чет Дек 08, 2011 7:24 pm
Профил
Ранг: Новодошъл
Ранг: Новодошъл

Регистриран на: Пет Авг 25, 2006 11:31 pm
Мнения: 168
Местоположение: Русе
Мнение Re: Как да пренасочвам портове
Точно начина, който е описал CarBeta ми върши работа.
Елементарно, но как не се сетих
Аз мислех че трябва още при инициализацията да дефинирам разни сложнотии.....нещо се обърках
Благодаря на всички отговорили


Чет Дек 08, 2011 9:52 pm
Профил
Ранг: Минаващ
Ранг: Минаващ
Аватар

Регистриран на: Съб Дек 10, 2011 7:53 pm
Мнения: 32
Местоположение: Варна
Мнение Re: Как да пренасочвам портове
ако половината изводи са ми входове а другата половина изходи, мога ли да използвам горния пример за да сканирам двуичния код само на входовете. мисля да свържа бутони които дават ниско ниво на определени изводи също като при двуичния код - 1-0001, 2-0010,3-0011,4-0100 и т.н.


Вто Дек 13, 2011 6:48 pm
Профил
Ранг: Форумен бог
Ранг: Форумен бог

Регистриран на: Пет Фев 04, 2005 9:59 pm
Мнения: 6019
Местоположение: София
Мнение Re: Как да пренасочвам портове
Ако те разбирам правилно, ще имаш хххх 1110 за бутон 1, хххх 1101 за бутон 2, хххх 1011 за бутон 3 и хххх 0111 за бутон 4.

_________________
Warriors of the Night, ASSEMBLER!!!


Вто Дек 13, 2011 6:56 pm
Профил
Ранг: Форумен бог
Ранг: Форумен бог
Аватар

Регистриран на: Сря Апр 20, 2005 12:02 pm
Мнения: 9119
Местоположение: Разград
Мнение Re: Как да пренасочвам портове
Nenko, зарежи малко питането във форума и се върни към четенето на книжки. Освен това се пише двОичен.
А ако искаш да направиш точно това което си написал ще ти трябва 74LS148 която идея си нямам отде можеш да я намериш. Отделно вече четенето на портовете...


Вто Дек 13, 2011 9:39 pm
Профил ICQ
Покажи мненията от миналия:  Сортирай по  
Отговори на тема   [ 9 мнения ] 

Кой е на линия

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


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

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