Микроконтролери и електроника
http://mcu-bg.com/mcu_site/

8051 PIN пойнер? акцес
http://mcu-bg.com/mcu_site/viewtopic.php?f=3&t=15593
Страница 1 от 3

Автор:  TheWizard [ Пон Ное 13, 2017 7:23 pm ]
Заглавие:  8051 PIN пойнер? акцес

дайте идея за индиректно PIN read/write
The reason is because the 8051's SFRs are mapped into the upper 128 bytes of the Directly Addressable On-chip Memory. This area cannot be accessed indirectly, so you cannot use pointers to indirectly access the SFRs....

тва ми изглежда "тъпо"
Код:
void pinWrite(uint8_t pin, unsigned v){
    switch(pin){
        case 0: P0_0 = v; break;
        case 1: P0_1 = v; break; 
        .....
    }
}

Автор:  slav4o.com [ Вто Ное 14, 2017 12:09 am ]
Заглавие:  Re: 8051 PIN пойнер? акцес

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

Автор:  ike [ Вто Ное 14, 2017 1:55 am ]
Заглавие:  Re: 8051 PIN пойнер? акцес

За щастие никога не съм се сблъсквал с 8051.
Пробвай
Код:
//sfr P0   = 0x80;
void pinWrite(uint8_t pin, unsigned v){
if(v) {_SETB(0x80+pin)}
else{_CLR(0x80+pin)}
}



_SETB и _CLR са функции които ти си ги написал на асемблер: http://www.keil.com/support/docs/50.htm

Автор:  ToHu [ Вто Ное 14, 2017 5:25 am ]
Заглавие:  Re: 8051 PIN пойнер? акцес

Кажи чий е този 8051, че има разлики в реализацията.

Автор:  TheWizard [ Вто Ное 14, 2017 8:13 am ]
Заглавие:  Re: 8051 PIN пойнер? акцес

всъщност е Soc CC2530, чисто 8051 му е ядррото... :) опитвам се да го портна в "любимото" Arduino IDE
IAR-a го оправих с някой забележки, UARTA като Serial работи

пиновете на P0,P1,P2,DIRx, MODEx искам да индексирам (таблица) обаче няма достъп (указател) до тези регистри ат 0х80, 0х90... мога да ги чета... мапнати са за четене ат 0х7080, 0х7090...
char * port = (volatile char *)(0x80) сочи XDATA а не SFR
*port |= mask;...

чета че има някакви SFR ат 0х20...0х2F които били bit-accsess, днес ще екпериментирам как да ги структурирам в няква таблица нящо като за AVR с CBI, SBI

Автор:  TheWizard [ Вто Ное 14, 2017 11:42 am ]
Заглавие:  Re: 8051 PIN пойнер? акцес

Греда е тоя сок... само директен достъп

Автор:  ДедоБоре [ Вто Ное 14, 2017 12:07 pm ]
Заглавие:  Re: 8051 PIN пойнер? акцес

компилатора, с който се бориш, има ли линкер скрипт (или нещо, в което се дефинират секции с адреси)?
ако да, виж как се казва секцията за SFR зоната. огледай и за специфични атрибути.

не виждам особен смисъл за указателна аритметика, точно за 8051 и SFR. ако може малко светлина по въпроса?

Автор:  TheWizard [ Вто Ное 14, 2017 1:20 pm ]
Заглавие:  Re: 8051 PIN пойнер? акцес

в Arduino-to пин манипулацията е API индексирани пинове с дискрипшън таблица... ардуино-пин, порт-адрес, дир-адрес, моде-адрес, маск:
pА = FindByName(pin);
няква манипулация на p...



те така работи но е бавно като за Ардуино... в случая съм вързал един DHT11 за тестове

Код:
void digitalWrite( uint32_t pin, uint32_t val ) {
    switch( pin ){
        case 0: P0_0 = (boolean)val; break;
        case 1: P0_1 = (boolean)val; break; 
        // други
    }
}

int digitalRead( uint32_t pin ) {
    switch( pin ){
        case 0: return P0_0;
        case 1: return P0_1;
        // други
    }       
    return 0;
}


иначе с чист IAR проект сок-а си бачка чудесно... просто се опитах дали може да стане на Ардуино
заебавам го за сега

Автор:  TheWizard [ Вто Ное 14, 2017 1:23 pm ]
Заглавие:  Re: 8051 PIN пойнер? акцес

ето и един шот

Прикачени файлове:
1212.png
1212.png [ 457.82 KiB | Прегледано 6403 пъти ]

Автор:  ДедоБоре [ Вто Ное 14, 2017 1:37 pm ]
Заглавие:  Re: 8051 PIN пойнер? акцес

мдааа...

както каза Ицо, в съвременния свят, ако няма драйвер/API за реле, никой не може да цъкне релето

Автор:  MYXATA [ Вто Ное 14, 2017 1:53 pm ]
Заглавие:  Re: 8051 PIN пойнер? акцес

ДедоБоре написа:
мдааа...

както каза Ицо, в съвременния свят, ако няма драйвер/API за реле, никой не може да цъкне релето

:)
а всичко тръгна от един хубав български филм от края на соца:
"вече не се казва ще скова кочина, а се казва ще реализирам кочина" :!:

Автор:  itso.t [ Вто Ное 14, 2017 3:17 pm ]
Заглавие:  Re: 8051 PIN пойнер? акцес

Тц, тц, как ме нагласихте... Казаното беше в друга тема, в друг контекст и няма общо с тая.

Автор:  ДедоБоре [ Вто Ное 14, 2017 4:02 pm ]
Заглавие:  Re: 8051 PIN пойнер? акцес

в днешно време:
Структурно усвояване на коехизионните фондове относно подобрение на местообиталищата на най-близката до човешкия геном хранителна верига
- историческа справка на местообиталищата
- общ поглед върху съвременния световен опит в осигуряването на местообиталища, видовото разнообразие, хуманно отношение и екологична оценка на въздействията върху околната среда, предвиди особеностите на култура, бит и религия
- преюдициално запитване до приложимата юрисдикция относно защитата на правата на проектния субект
- съгласувателно мнение от камарата на архитектите, камарата на строителни инженери, камарата на строителните надзорници, електро- и водо-разпределителните дружества относно процедурите, правилата и добрите практики при проектирането, изграждането, експлоатацията и утилизацията на местообиталищата, както и на техните вторични и отпадни продукти
- съгласувателно мнение от сдружението на службите по трудова медицина и охрана на труда относно безопастните условия на труд на операторите на биологичните единици
- съгласувателно мнение от ДАИ, пътна полиция, пристанищна администрация и гранична полиция относно организационните мероприятия, добрите практики и ограниченията при превоз на всички проектни субекти.
- съгласувателно мнение от служба противопожарна безопастност и гражданска защита относно потенциалните бедствия, аварии и инциденти при обичайната експлоатация на местообиталищата
- предложение до БАИТ за съвместно прилагане на най-съвременни IT технологии като: WiFi, индустриална автоматизация, IoT, Facebook и т.н.
- създаване на работна група от учени, лекари, агрономи, ветеринари, биолози, лекари, строители, инженери, културни дейци, циркаджии, журналисти и законотворци за обобщаване на получената информация и изготвяне на пътна карта, нормативна уредба, наредби и ръководства по проекта, с привличане на експерти от ресорните министерства, ресорните агенции, академии, НПО и сдружения.

без особени проблеми ще влезе в бюджет от 20 млн. лв.
в целия проект няма нужда и от един пирон и/или дъска.

Автор:  stefan63 [ Вто Ное 14, 2017 8:43 pm ]
Заглавие:  Re: 8051 PIN пойнер? акцес

Dedi, може ли с едно изречение?
Уизард, явно няма пълно щастие.
Много съм се чудил, що Тексас ползват 8051 за уж модерни продукти, предполагам- са пазарували наедро, купуваш,правиш , продаваш.
От друга страна - нищо му няма на '51, има си някои особености само :-) .
Както казва ДедоБоре - може ли да обясниш -за какво ти е индексно адресиране на пиновете? Да бяха 100, как да е , пък те при тебе са двайсетина.

Автор:  TheWizard [ Вто Ное 14, 2017 9:29 pm ]
Заглавие:  Re: 8051 PIN пойнер? акцес

начи сока в нормален проект си работи перфетно за "способностите" си
cc25xx не е на TI, краварите купиха фирмата - забравих как се казваше, чипа е стар, сега има ARM-Soc ама аз нямам развойна платка за тестове... готиното на cc2530 е че е евтин, има много китайски "развой"

За индексиране на пиновете следвах Arduino "правилата"... да стане прилично универсално, да могат да се ползват стандартни библиотеки без да ги променям

скрин шота е с променена библиотека за DHTxx, примера горе със switch-case "индексиране" пин достъпа е бавен (ядрото не е RISC) 8051 на 32 MHz e

Пиновете са малко да кажем 16(няма проб за switch-case), има 2 уарта, spi, pwm, adc... става за много неща, правил съм меш...
на тоя етап в ардуино версия не ме кефи... ще го продължа по-късно
Ардуино + IAR прави един проблем който ме дразни и не става за общия потребител
Ардуино е пригодено повече за GCC и няма parse/ctags подръжка за IAR, Keil...

абе - заеби - нека отлежи малко

Страница 1 от 3 Часовете са според зоната UTC + 2 часа [ DST ]
Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group
http://www.phpbb.com/