Problem med interupt Uno32

PIC, AVR, Arduino, Raspberry Pi, Basic Stamp, PLC mm.
Användarvisningsbild
hawkan
Inlägg: 2637
Blev medlem: 14 augusti 2011, 10:27:40

Re: Problem med interupt Uno32

Inlägg av hawkan »

Rad 66

Kod: Markera allt

//************************************************************************
// PIC32 devices only support rising and falling edge triggered interrupts
// on the external interrupt pins. Only the RISING and FALLING modes are
// supported.
//************************************************************************
Du får väl göra attachInterrupt två gånger då, en på RISING och en på FALLING.
Du kan ha samma isr.
Användarvisningsbild
Klas-Kenny
Inlägg: 11351
Blev medlem: 17 maj 2010, 19:06:14
Ort: Växjö/Alvesta

Re: Problem med interupt Uno32

Inlägg av Klas-Kenny »

hawkan skrev: 1 april 2024, 16:43:10 Du får väl göra attachInterrupt två gånger då, en på RISING och en på FALLING.
Du kan ha samma isr.
Nej, det går inte.
Det kommer att bli det sist valda.

Stigande eller fallande flank väljs till sist genom att sätta eller inte sätta en bit i INTCON-registret i processorn. Kan inte vara både och.
I så fall får man använda två parallellkopplade pinnar och två interrupt.
Skärmbild 2024-04-01 165615.png
Du har inte behörighet att öppna de filer som bifogats till detta inlägg.
Användarvisningsbild
sodjan
EF Sponsor
Inlägg: 43178
Blev medlem: 10 maj 2005, 16:29:20
Ort: Söderköping
Kontakt:

Re: Problem med interupt Uno32

Inlägg av sodjan »

Toggla biten i INTCON vid varje interrupt?
SeniorLemuren
Inlägg: 7812
Blev medlem: 26 maj 2009, 12:20:37
Ort: Kristinehamn

Re: Problem med interupt Uno32

Inlägg av SeniorLemuren »

Så här blev det

Kod: Markera allt

attachInterrupt(1, LEDchange, RISING);
attachInterrupt(2, LEDchange, FALLING);
Använde 2 interuptpinnar. fungerar bra.
agehall
Inlägg: 427
Blev medlem: 12 augusti 2020, 19:27:54

Re: Problem med interupt Uno32

Inlägg av agehall »

hawkan skrev: 1 april 2024, 09:47:39 Att läsa och skriva en pinne är knappast för mycket i en isr, det är istället mycket lämpligt i detta fallet.
Problemet med digitalWrite() i Arduino är att det är en funktion som gör mycket mer än vad vid första anblick tror. Det blir en hel del kod som ska köras av ett anrop. Kanske inte är ett problem, men det kan vara.

Jag är smått allergisk mot hur Arudino’s bibliotek fungerar. De försöker dölja hårdvaran på ett sätt som inte hjälper. Det är snarare så att det hindrar folk från att förstå vad som faktiskt händer. Det Arduino gjort bra, är att de fyllt marknaden med billiga utvecklingskort som man kan använda utan att göra något eget.
SeniorLemuren skrev: 1 april 2024, 11:04:12Vilken plattform använder du till Digilent ChipKit Uno32?
Jag kör oftast ”rå” C på mina utvecklingskort, dvs kompilerar rakt av med GCC och programmerar med lämplig programmerare. Dvs inga halvmysko C++-bibliotek eller annan svart magi. Det kräver att man läser lite specar för att få fram portar och annat men det är något som lönar sig i längden att kunna. Har man gjort det en gång för en CPU är det ganska enkelt att göra det för en annan.
Användarvisningsbild
hawkan
Inlägg: 2637
Blev medlem: 14 augusti 2011, 10:27:40

Re: Problem med interupt Uno32

Inlägg av hawkan »

Ja men det låter vettigt. SeniorLemuren, sluta med det du håller på med och börja utveckla ett stegmotorbibliotek för din processor.
Glöm inte funktioner för att kontrollera pinnar. Undersök och skriv kod också hur du kopplar ett interrupt till närt en pinne ändrar läge.
Nej nej oroa dej inte, det är väl använd tid.
SeniorLemuren
Inlägg: 7812
Blev medlem: 26 maj 2009, 12:20:37
Ort: Kristinehamn

Re: Problem med interupt Uno32

Inlägg av SeniorLemuren »

agehall skrev: 1 april 2024, 17:47:50
hawkan skrev: 1 april 2024, 09:47:39 Att läsa och skriva en pinne är knappast för mycket i en isr, det är istället mycket lämpligt i detta fallet.
Problemet med digitalWrite() i Arduino är att det är en funktion som gör mycket mer än vad vid första anblick tror. Det blir en hel del kod som ska köras av ett anrop. Kanske inte är ett problem, men det kan vara.

Jag är smått allergisk mot hur Arudino’s bibliotek fungerar. De försöker dölja hårdvaran på ett sätt som inte hjälper. Det är snarare så att det hindrar folk från att förstå vad som faktiskt händer. Det Arduino gjort bra, är att de fyllt marknaden med billiga utvecklingskort som man kan använda utan att göra något eget.
SeniorLemuren skrev: 1 april 2024, 11:04:12Vilken plattform använder du till Digilent ChipKit Uno32?
Jag kör oftast ”rå” C på mina utvecklingskort, dvs kompilerar rakt av med GCC och programmerar med lämplig programmerare. Dvs inga halvmysko C++-bibliotek eller annan svart magi. Det kräver att man läser lite specar för att få fram portar och annat men det är något som lönar sig i längden att kunna. Har man gjort det en gång för en CPU är det ganska enkelt att göra det för en annan.
Mycke fördomar på en gång. Jag har varit med sedan assemblers tider och hunnit pröva det mesta. Att jag nu använder Arduino till mina konstruktioner beror på att jag lärt mig att det mesta går att lösa på ett enkelt och snabbt vis. De som påstår motsatsen har nog aldrig riktigt försökt, utan bara förkastat det vid en ytlig granskning. Bland annat så så gjorde jag ett varvräknare-instrument till min båt av en Arduino Due. Det är en hel del tunga flyttalsberäkningar och grafikfunktioner för att få den att fungera. Inga som helst problem att slänga ihop med Arduinos bibliotek.
Användarvisningsbild
Icecap
Inlägg: 26153
Blev medlem: 10 januari 2005, 14:52:15
Ort: Aabenraa, Danmark

Re: Problem med interupt Uno32

Inlägg av Icecap »

Jag har också en mental allergi mot Arduino, just av de grunder som agehall anger.

Även jag kör helst "bare metal", helt enkelt för att jag inte litar på vad andra har gjort.

MEN å andra sidan har senior också rätt: Det fungerar ju, det utför funktionen och det var ju kravet.

Ja, jag har lagt många "onödiga" timmar på att göra funktioner som redan fanns på nätet, några enstaka har jag använd, dock med modifikationer som jag anser viktiga o alla sådana funktioner är GRUNDLIGT testat innan de blir använd skarpt.

De funktioner jag har som "basfunktioner" är extremt väl testat o dokumenterat o jag har alltid fått veta att den mjukvara jag har skrivit är 100% stabil.

Men jag lägger mycket tid i den också...
agehall
Inlägg: 427
Blev medlem: 12 augusti 2020, 19:27:54

Re: Problem med interupt Uno32

Inlägg av agehall »

Jag skulle inte kalla mina åsikter fördomar eftersom de bygger på erfarenheter. Jag har kodat assemblera sedan tidigt 90-tal och C i runt 30 år nu.

Visst kan det fungera med Arduinos bibliotek, men när det inte gör det tar det allt som oftast mångdubbelt med tid att reda ut jämfört med att ha kodat allt från början. Ofta finns det kod man kan använda som inte kommer i form av Arduino-bibliotek som är 1) väldokumenterade och 2) skrivna i C. Det är helt klart att föredra framför Arduinos magi som vill göra allt så osynligt som möjligt för mig som utvecklare.
Skriv svar