| Микроконтролери и електроника http://mcu-bg.com/mcu_site/ |
|
| Аддрессиране на памет през 2 порта http://mcu-bg.com/mcu_site/viewtopic.php?f=7&t=5410 |
Страница 1 от 1 |
| Автор: | mk912 [ Пет Фев 01, 2008 11:04 pm ] |
| Заглавие: | Аддрессиране на памет през 2 порта |
Имам следното питане: Как да изразя на С30 2-та младши байта от адрес да се пуснат на ПОРТД 0-15 и треитя байт на ПОРТБ 8-15 - много рових в нета ама не можах да конкретизирам стринга за търсене...Идват ми идеи за преместване например ама не може да няма по елегантен начин. |
|
| Автор: | TheWizard [ Нед Фев 03, 2008 12:13 am ] |
| Заглавие: | |
[code] *((char*)&LATB+1) = 0xA5; *((char*)&LATB+0) = 0x5A; [/code] |
|
| Автор: | mk912 [ Нед Фев 03, 2008 8:01 pm ] |
| Заглавие: | |
Мерси за идеята, а какво трябва да прочета за да ми станат ясни 2-та реда? |
|
| Автор: | TheWizard [ Нед Фев 03, 2008 8:41 pm ] |
| Заглавие: | |
аз малко трудно ти хващам заданието искаш някакво 3 байтово число ( LONG? struct? ) да го метнеш на порт бе и де ли |
|
| Автор: | mk912 [ Нед Фев 03, 2008 8:56 pm ] |
| Заглавие: | |
Точно така - имам лонг инт (адрес на външна памет) който трябва да метна на ПОРТД 0-15 и третия байт на ПОРТБ 8-15. За сега го правя така: ПОРТД=адрес и ПОРТБ=адрес>>8 - в дебъг се държи коректно ама знам ли |
|
| Автор: | TheWizard [ Нед Фев 03, 2008 9:12 pm ] |
| Заглавие: | |
union { unsigned long UL; struct { unsigned short Lo; unsigned short Hi; }WVal; struct { unsigned char B[4]; }BVal; }ADR; int main(int argc, char * argv[]){ ADR.UL = 0x87654321; LATB = ADR.WVal.Lo; *((char*)&LATD+1) = ADR.BVal.B[2]; обърни си там LATB и D |
|
| Страница 1 от 1 | Часовете са според зоната UTC + 2 часа [ DST ] |
| Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group http://www.phpbb.com/ |
|