|
| Erfaringer med LPC2129 søges Fra : Brian Axelgaard |
Dato : 28-04-05 18:07 |
|
Er der nogen her som har brugt en Phillips LPC2129, evt. lillebroderen 2124
eller storebroderen 2992? Jeg har nemlig nogle problemer med interrupt'en i
kredsen, og kunne godt tænke mig lidt input, hvis nogen kender til denne...
Jeg glæder mig til at høre fra dig!
| |
Ukendt (28-04-2005)
| Kommentar Fra : Ukendt |
Dato : 28-04-05 20:46 |
|
> Er der nogen her som har brugt en Phillips LPC2129, evt. lillebroderen
> 2124 > eller storebroderen 2992? Jeg har nemlig nogle problemer med
> interrupt'en i kredsen, og kunne godt tænke mig lidt input, hvis nogen
> kender til denne...
>
Det er ikke mere generelt ?
tpt
| |
Brian Axelgaard (28-04-2005)
| Kommentar Fra : Brian Axelgaard |
Dato : 28-04-05 22:21 |
|
"Troels Thomsen" <nej tak ...> skrev i en meddelelse
news:42713d72$0$239$edfadb0f@dread11.news.tele.dk...
>> Er der nogen her som har brugt en Phillips LPC2129, evt. lillebroderen
>> 2124 > eller storebroderen 2992? Jeg har nemlig nogle problemer med
>> interrupt'en i kredsen, og kunne godt tænke mig lidt input, hvis nogen
>> kender til denne...
>>
>
> Det er ikke mere generelt ?
Nej desværre ikke. Netop denne µcontroller er fyldt med mystiske fejl. Når
man fx. ændrer en opsætning i ADC'en, ændres VPB-divideren og dermed går
stort set alt andet i 'skudder-mudder'. Der er _mange_ mystiske fejl, men
dog også workaround's til de fleste. Jeg sidder bare med et problem jeg ikke
lige kan finde løsningen på :(
Det der sker er, at når jeg aktiverer en extern-interrupt, via et register,
som hedder PINSEL0, så eksekveres denne interrupt også. Lidt uheldigt,
eftersom jeg skal deaktivere/aktivere interrupten ofte, og interrupt-koden
ændrer i nogle variabler, som først skal/må ændres når interrupten rigtigt
kaldes (via en knap).
Lidt svært at forklare, men et irreterende problem.
| |
Ukendt (02-05-2005)
| Kommentar Fra : Ukendt |
Dato : 02-05-05 21:31 |
|
Hmm, lyder giftigt... Du skal vel cleare et bestemt bit i et bestemt
register for at "acknowledge" interrupten. Det har du vel prøvet at gør i
både linien lige før og lige efter at du enabler det pågældende interrupt ?
Hvad med at disable global interrupt mens du enabler og clearer det
pågældende interrupt?
Kunne du lade interrupten være aktiveret hele tiden, og så bare lade dine
interrupt "events" falde igennem så de ingen ting gør ?
Anden variation af det samme:
void setInput7mode(BOOL status)
{
_disable_global_interrupt();
g_input7mode = status;
_enable_global_interrupt();
}
#pragma halløj
__interrupt void myInput7Handler()
{
if (g_input7mode)
{
doSomething();
}
// code to ack interrupt
}
Dit program skal være _meget_ _meget_ tæt på en performance grænse hvis en
tom interrupt rutine skal ødelægge noget.... (imho selvfølgelig)
tpt
"Brian Axelgaard" <ask@for.it> skrev i en meddelelse
news:427153b2$0$299$ba624c82@nntp05.dk.telia.net...
> "Troels Thomsen" <nej tak ...> skrev i en meddelelse
> news:42713d72$0$239$edfadb0f@dread11.news.tele.dk...
>>> Er der nogen her som har brugt en Phillips LPC2129, evt. lillebroderen
>>> 2124 > eller storebroderen 2992? Jeg har nemlig nogle problemer med
>>> interrupt'en i kredsen, og kunne godt tænke mig lidt input, hvis nogen
>>> kender til denne...
>>>
>>
>> Det er ikke mere generelt ?
>
> Nej desværre ikke. Netop denne µcontroller er fyldt med mystiske fejl. Når
> man fx. ændrer en opsætning i ADC'en, ændres VPB-divideren og dermed går
> stort set alt andet i 'skudder-mudder'. Der er _mange_ mystiske fejl, men
> dog også workaround's til de fleste. Jeg sidder bare med et problem jeg
> ikke lige kan finde løsningen på :(
> Det der sker er, at når jeg aktiverer en extern-interrupt, via et
> register, som hedder PINSEL0, så eksekveres denne interrupt også. Lidt
> uheldigt, eftersom jeg skal deaktivere/aktivere interrupten ofte, og
> interrupt-koden ændrer i nogle variabler, som først skal/må ændres når
> interrupten rigtigt kaldes (via en knap).
> Lidt svært at forklare, men et irreterende problem.
>
| |
|
|