zase C -Hi-Tech

Andrej Jancura aj.hwlist na gmail.com
Pondělí Únor 4 15:45:46 CET 2013


No budete sklamany... On to je len lepsi prekladac, a ked to budete
chciet inteligentne napisat, napiste si normalnu neinterruptovu
funkciu pre povedzme SPI a rucne to dajte do volania v ISR. Akurat si
dajte pozor, aby vam nepretiekol zasobnik. Pokial to bude v mode pro,
tak by to volanie mohlo byt urobene aj cez jump, treba si to pozriet v
listingu ako to prelozi.

takto:

interrupt isr(void)
{
SPI();
TMR2();
}

void SPI()
{
}

TMR2()
{
}

A.


2013/2/4 Miroslav Draxal <evik na volny.cz>:
> Dobře, ale to potom popírá modulárnost. Mě se nezdá, že by to nedokázal
> slinkovat,. Něco mi uniká. Pokud mám hotovou rutinu pro SPI, tak si ji do
> projektu pouze linknu, vytvořím SPI.h, kde nově nadefinuji co a jak, do
> vlastní SPI nezasahuji.
>
>
>
> Pokud bych musel přerušení ručně "slinkovávat" do jednoho low_interrupt.c
> souboru, tak to je pro mě zklamání.
>
>
>
> Míra
>
>
>
> Ps. Takovýhle ohýbák se mi zdá blbý
>
>
>
> Low_interrupt.c
>
> void interrupt low_priority Interrupt (void)
>
> {
>
> #include low_interruptSPI.c
>
> #include low_interruptTMR2.c
>
> #include ...
>
> }
>
>
>
>
>
> From: hw-list-bounces na list.hw.cz [mailto:hw-list-bounces na list.hw.cz] On
> Behalf Of Andrej Jancura
> Sent: Monday, February 04, 2013 3:25 PM
> To: HW-news
> Subject: Re: zase C -Hi-Tech
>
>
>
> Dobry den,
>
> to musite mat vsetko v tej jednej rutine a softom to osetrit,
>
> void interrupt low_priority Interrupt (void)
>>
>> {
>>
>>     if (SSPIE && SSPIF)
>>
>>     {
>>
>>     ......
>>
>>     }
>>
>>     if (TMR2IE && TMR2IF)
>>
>>     {
>>
>>      ....
>>
>>     }
>> }
>
> A.
>
>
>
> 2013/2/4 Miroslav Draxal <evik na volny.cz>:
>> Dobrý den,
>>
>> Snažím se deborelizovat projekt, mám ale problém s přerušením. Jak docílit
>> toho, abych všechen kód od SPI v jednom souboru včetně přerušení. To
>> stejné
>> např. pro TMR2. Pokud to napíši takhle (viz dole) tak to přeloží za sebou,
>> ale jako dvě low přerušení, a na to druhé se nedostane. RETFIE je již za
>> přerušením od SPI. Koukám do dokumentace, a nějak nemohu najít co s tím.
>> Jde
>> to vůbec? Děkuji ve spolek za reakce. Míra
>>
>>
>>
>> SPI.c
>>
>> void interrupt low_priority SPIinterrupt (void)
>>
>> {
>>
>>     if (SSPIE && SSPIF)
>>
>>     {
>>
>>     ......
>>
>>     }
>>
>> }
>>
>>
>>
>> a
>>
>>
>>
>> TMR2.c
>>
>> void interrupt low_priority TMR2interrupt (void)
>>
>> {
>>
>>     if (TMR2IE && TMR2IF)
>>
>>     {
>>
>>      ....
>>
>>     }
>>
>> }
>>
>> --------------------------přeloží to takhle
>>
>> 0x0016 - low interrupt vektor
>>
>> uloží reg
>>
>> SPIinterrupt
>>
>> Načte reg
>>
>> 0x0090RETFIE<<<<<<<<<<<<<<
>>
>> 0x0091uloží reg
>>
>> TMR2interrupt
>>
>> Načte reg
>>
>> 0x0150RETFIE<<<<<<<<<<<<<<<
>>
>>
>>
>>
>>
>> __________ Informace od ESET NOD32 Antivirus, verze databaze 7968
>> (20130204)
>> __________
>>
>> Tuto zpravu proveril ESET NOD32 Antivirus.
>>
>> http://www.eset.cz
>>
>> _______________________________________________
>> HW-list mailing list  -  sponsored by www.HW.cz
>> Hw-list na list.hw.cz
>> http://list.hw.cz/mailman/listinfo/hw-list
>>
> _______________________________________________
> HW-list mailing list  -  sponsored by www.HW.cz
> Hw-list na list.hw.cz
> http://list.hw.cz/mailman/listinfo/hw-list
>
>
>
> __________ Informace od ESET NOD32 Antivirus, verze databaze 7968 (20130204)
> __________
>
> Tuto zpravu proveril ESET NOD32 Antivirus.
>
> http://www.eset.cz
>
>
>
> __________ Informace od ESET NOD32 Antivirus, verze databaze 7968 (20130204)
> __________
>
> Tuto zpravu proveril ESET NOD32 Antivirus.
>
> http://www.eset.cz
>
> _______________________________________________
> HW-list mailing list  -  sponsored by www.HW.cz
> Hw-list na list.hw.cz
> http://list.hw.cz/mailman/listinfo/hw-list
>


Další informace o konferenci Hw-list