c: hi-tech 9,80, interrupt asm
Hynek Sladky
econf na centrum.cz
Pondělí Březen 31 07:24:06 CEST 2014
Pro PIC16F182x pouzivam napr. tuto konstrukci:
static void vectors (void) @ 4 {
#asm
movlp 0x08
goto 0x804 & 0x7FF
#endasm
}
Ma to tak pouzite v aplikaci s bootloaderem pro premapovani interruptu.
Treba to pujde pouzit i pro PIC18...
Hynek Sladky
Dne 29.3.2014 20:49, Miroslav Draxal napsal(a):
>
> Dobrý den, založil jsem nové vlákno, ale má návaznost na předchozí vlákno.
>
> Využívám u PICe přerušení s vysokou prioritou pro TMR3. Ovšem kompiler
> po provedení přerušení uklízí zbytečně moc registrů.
>
> 5940 0009FA CFEA F03B movff fsr0h,??_interrupt_high+3
>
> 5941 0009FE CFE1 F03C movff fsr1l,??_interrupt_high+4
>
> 5942 000A02 CFE2 F03D movff fsr1h,??_interrupt_high+5
>
> 5943 000A06 CFD9 F03E movff fsr2l,??_interrupt_high+6
>
> 5944 000A0A CFDA F03F movff fsr2h,??_interrupt_high+7
>
> 5945 000A0E CFF3 F040 movff prodl,??_interrupt_high+8
>
> 5946 000A12 CFF4 F041 movff prodh,??_interrupt_high+9
>
> 5947 000A16 CFF6 F042 movff tblptrl,??_interrupt_high+10
>
> 5948 000A1A CFF7 F043 movff tblptrh,??_interrupt_high+11
>
> 5949 000A1E CFF8 F044 movff tblptru,??_interrupt_high+12
>
> 5950 000A22 CFF5 F045 movff tablat,??_interrupt_high+13
>
> V obsluze přerušení s registry nepracuji, tudíš jejich schovávání je
> zbytečné. Úschova a obnova trvá dost dlouho. Rád bych si napsal
> komplet obsluhu přerušení v asm(cca 10 řádků). Celý den nad tím sedím
> a nedostal jsem se ke kloudným výsledkům.
>
> a/dá se nějak v C podstrčit moje obsluha interuptu? (snad by to mělo
> jít přes PSECT???)
>
> or
>
> b/dá se v C vytvořit funkce, která má začátek v ram pevně daný (uložit
> na 008h goto interruptME)
>
> díky za případné nakopnutí Míra
>
------------- další část ---------------
HTML příloha byla odstraněna...
URL: <http://list.hw.cz/pipermail/hw-list/attachments/20140331/a445f443/attachment.html>
Další informace o konferenci Hw-list