| Микроконтролери и електроника http://mcu-bg.com/mcu_site/ |
|
| Управление на регистри http://mcu-bg.com/mcu_site/viewtopic.php?f=3&t=9562 |
Страница 1 от 1 |
| Автор: | perro_iv [ Пон Ное 28, 2011 10:10 pm ] |
| Заглавие: | Управление на регистри |
Трябва ми малко помощ, че не мога да захапя. Става въпрос за следното - трябва да пълня периодично 8 външни регистъра свързани последователно. До сега винаги ползвах MSSP модула в SPI Mode. Сега обаче трябва да ползвам паралелно и EUSART-а, а пиновете им съвпадат. Поради това трябва да си напиша комуникацията, обаче на C не съм ротейтвал байтове и нямам идея, как да обхождам битовете в байта та да вдигам и свалям съответно управляващия пин. Дайте малко идеи, ако някой вече си е блъскал главата. Става въпрос за MICROCHIP. |
|
| Автор: | ike [ Пон Ное 28, 2011 10:29 pm ] | |||||||||
| Заглавие: | Re: Управление на регистри | |||||||||
Надявам се можеш да се ориентираш. |
||||||||||
| Автор: | perro_iv [ Пон Ное 28, 2011 10:38 pm ] |
| Заглавие: | Re: Управление на регистри |
... C# направо ме е разглезил ... |
|
| Автор: | Cekins [ Вто Ное 29, 2011 10:18 am ] |
| Заглавие: | Re: Управление на регистри |
А що не си го нацвъкаш на асемблер? примерно така: MOVLW 0x08 MOVWF counter label1: BZ end BSF outport,outbit BTSS data_byte,7 BCF outport,outbit BSF outport,clockbit NOP - ако си под 16 MHz - няма нужда BCF outport,clockbit RLNCF data_byte,1 DEC counter goto label1 end: BSF outport,strobebit {NOP} BCF outport,strobebit |
|
| Автор: | palavrov [ Вто Ное 29, 2011 4:31 pm ] | |||||||||
| Заглавие: | Re: Управление на регистри | |||||||||
Една безумна идея - вземи разгледай .NET MicroFramework - има разни контролери по $30-на ако не ме лъже паметта, направо си го програмираш на C# от Visual Studio - иначе лично аз не бих го ползвал ... 10-на инструкции на асемблер ще ги замениш с няколкостотин КБ итнерпретатор и виртуална машина |
||||||||||
| Автор: | perro_iv [ Вто Ное 29, 2011 4:55 pm ] | |||||||||
| Заглавие: | Re: Управление на регистри | |||||||||
Ето го :
Благодаря за отговорите! Магията не е чак толкова страшна: (sout & (1 << 7)) ? (Shift_Data = 1) : (Shift_Data = 0) този израз проверява седмия бит на sout, ако е единица - вдига информационния пин, ако не - обратно, следва завъртане sout <<= 1; и те така до 8 Тенкю още веднъж, просто ми трябваше малка подсказка ... |
||||||||||
| Страница 1 от 1 | Часовете са според зоната UTC + 2 часа [ DST ] |
| Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group http://www.phpbb.com/ |
|