Precis som flera har påpekat så blir det ganska mycket gissningar om du inte redovisar hur du testar. Skall även jag ge mig på en gissning så lutar den åt någon typ av programfel.
Du anger ju att du testar den "på bordet" och det är ju en betydligt snällare miljö än i bilen så yttre störningar borde lätt kunna elimineras.
Kanske du råkar ut för overflow om varvtalet blir för lågt eller att interuprutinen inte blir resetad tillräckligt snabbt efter ett avbrott m.m.
Men som sagt, beskriv mer ingående hur du testar och hur programmet är byggt, för att ge ett bättre underlag.
Edit: Missade Icecap´s inlägg. Naturligtvis så har han helt rätt i att det är avgörande att du kopplat rätt till att börja med. Har du mixtrat med 12 Volt på ingången så har du säkert pajat den porten.
Avr: svårt att få bort störningar vid extern interrupt
- SeniorLemuren
- Inlägg: 8427
- Blev medlem: 26 maj 2009, 12:20:37
- Ort: Kristinehamn
Re: Avr: svårt att få bort störningar vid extern interrupt
Ett sätt att felsöka som jag använder ibland är koppla bort sensorn helt, och istället koppla ihop interruptingången med någon annan I/O. Sen lägger jag några enkla kodrader i huvudprogrammet, som sätter I/O till utgång, och växlar den i ungefär samma mönster som sensorn. Det blir som att koppla en signalgenerator till ingången.
Då kan jag i lugn och ro kontrollera hur lång tid interruptet tar, och ifall koden fungerar som tänkt.
Ifall det sedan inte fungerar med den riktiga sensorn, är det enklare att felsöka, eftersom att jag kan utesluta att programmet gör fel.
Vad använder du för metod för att debugga programmet?
Jag har snappat upp att det finns någon form av debugger inbyggd i arduinons bootloader, som går att använda via plugin i AVR-studio 6.x.
Då kan jag i lugn och ro kontrollera hur lång tid interruptet tar, och ifall koden fungerar som tänkt.
Ifall det sedan inte fungerar med den riktiga sensorn, är det enklare att felsöka, eftersom att jag kan utesluta att programmet gör fel.
Vad använder du för metod för att debugga programmet?
Jag har snappat upp att det finns någon form av debugger inbyggd i arduinons bootloader, som går att använda via plugin i AVR-studio 6.x.
Re: Avr: svårt att få bort störningar vid extern interrupt
Varifrån kommer störningen? Kör du ut signaler på andra pinnar med branta flanker som letar sig in som sörningar?
Jag har ett kråkbo på jobbet med liknande problem. Gpio-interrupt fungerade helt enkelt inte. Oerhört känsligt för störningar. Liten hysteres och triggar på extremt korta pikar. Lågpassfilter på ingången hjälpte lite, men avlägsnade inte problemen helt. Lösningen var att ta bort lågpassfiltret helt, och istället använda input-capture timer interrupt med maximal hårdvarufiltrering i processorn. Det här är en Cortex-M4 processor och jag vet inte om din Atmel har liknande block med filtrering. I mitt fall borde jag dessutom bandbreddsbegränsa signalerna som *orsakar* störningarna.
Jag har ett kråkbo på jobbet med liknande problem. Gpio-interrupt fungerade helt enkelt inte. Oerhört känsligt för störningar. Liten hysteres och triggar på extremt korta pikar. Lågpassfilter på ingången hjälpte lite, men avlägsnade inte problemen helt. Lösningen var att ta bort lågpassfiltret helt, och istället använda input-capture timer interrupt med maximal hårdvarufiltrering i processorn. Det här är en Cortex-M4 processor och jag vet inte om din Atmel har liknande block med filtrering. I mitt fall borde jag dessutom bandbreddsbegränsa signalerna som *orsakar* störningarna.
-
- Inlägg: 10
- Blev medlem: 28 juli 2009, 23:34:46
Re: Avr: svårt att få bort störningar vid extern interrupt
Tack till backeliten som tog sig tid att förklara. Han redde ut hur man kopplar in det. Rätt pullupmotstånd och ett rc filter tror jag det heter.
Pullup mot 5volt max 40mA, 100nF kondensator mot jord på ingången och 1k motstånd in till processorn.
processor-R1k-100|nF-R330-|-gt101
....................jord|....pullup | R160
Taskig ritning men typ så ^
Tack för alla svar, väldigt skönt att det äntligen fungerar!
Pullup mot 5volt max 40mA, 100nF kondensator mot jord på ingången och 1k motstånd in till processorn.
processor-R1k-100|nF-R330-|-gt101
....................jord|....pullup | R160
Taskig ritning men typ så ^
Tack för alla svar, väldigt skönt att det äntligen fungerar!
Re: Avr: svårt att få bort störningar vid extern interrupt
Jag vill puffa för ett superenkelt program för att rita scheman och som fungerar på alla plattformar (java) som heter FidoCadJ (http://sourceforge.net/projects/fidocadj/). Det är inget ECAD, utan endast ett enkelt ritprogram. Schemat nedan tog ca 2 minuter att fixa.dundersmurfen skrev:...
processor-R1k-100|nF-R330-|-gt101
....................jord|....pullup | R160
Taskig ritning men typ så ^
Du har inte behörighet att öppna de filer som bifogats till detta inlägg.