3 enkla frågor..
3 enkla frågor..
Har tre enkla frågor angående PIC programmering..
Vad menas med flytande? (floating) o va e den bra för?
Vad är skillnaden mellan if(PORTC==0){.. och if(PORTC=0){... det vill säga när det är två (==) och ett (=) likhetstecken.
Ska man lägga något motstånd mellan två st microcontrollers när dem samverkar med varandra? T.ex. när ja kopplar första pinnen på båda pic:arna mot varandra och den ena av dem väntar på att den andra pic:ens pinne ska bli hög..ska man då göra speciella if-satser eller är det bara att kötta på??
Vad menas med flytande? (floating) o va e den bra för?
Vad är skillnaden mellan if(PORTC==0){.. och if(PORTC=0){... det vill säga när det är två (==) och ett (=) likhetstecken.
Ska man lägga något motstånd mellan två st microcontrollers när dem samverkar med varandra? T.ex. när ja kopplar första pinnen på båda pic:arna mot varandra och den ena av dem väntar på att den andra pic:ens pinne ska bli hög..ska man då göra speciella if-satser eller är det bara att kötta på??
Re: 3 enkla frågor..
Vad menas med flytande? (floating) o va e den bra för?
Beror på i vilket sammanhang ... jag fick fundera ett tag, sen kom jag på att man brukar säga "flytande pinnar" om en del ingångar/utgångar på logik/processorkretsar.
Om det handlar om en in/ut-gång så betyder "flytande" att den varken har en bestämd nolla (GND) eller en bestämd etta (VCC) utan lämnas opåverkad. Ingångar ska inte lämnas "flytande", då det är olämpligt av olika orsaker (kan skapa störningar). Läser man av en flytande ingågn kan resultatet bli vad som helst (dvs antingen etta eller nolla).
Det finns fall då man vill lämna en utgång flytande. Sådana utgångar brukar kallas "tristate" eftersom de då kan ha tre olika tillstånd: etta, nolla eller "flytande". Fördelen med detta är att den då kan kopplas samman med andra utgångar som också är "tristate"... Bara en utgång i taget kan skicka data (dvs '0' eller '1').
Om man ska förklara mer om detta är det nog lämpligast om du har ett exempel där det förekommer.
I programmering finns ju även flyttal (float) och ibland pratar man om "floating point" - ett sätt att lagra tal i datorn, dvs. en variabeltyp. Det kanske var det du menade?
FLyttal används när man ska räkna med väldigt stora tal eller väldigt små tal eller med decimaltal. Flyttal kan vara olämpligt att använda i en PIC eftersom både programmet som hanterar flyttalen (multiplikation , division etc.) tar upp stor plats i minnet. Det tar dessutom ganska lång tid att utföra. Bättre att använda heltal om det går.
Vad är skillnaden mellan if(PORTC==0){.. och if(PORTC=0){... det vill säga när det är två (==) och ett (=) likhetstecken.
if ( A == B) { } jämför A och B. Om de är lika utförs satserna inom hakparentesen.
if ( A = B) { } betyder något helt annat, och bör undvikas. (kompilatorn bör varna!)
A = B betyder ju att A skall tilldelas värdet av B.
Skrivs det inne i en if-sats kommer detta att ske.
A och B jämförs aldrig. Vad som händer är att satserna i hakparenetesen utförs om B är skild från noll.
Ska man lägga något motstånd mellan två st microcontrollers när dem samverkar med varandra? T.ex. när ja kopplar första pinnen på båda pic:arna mot varandra och den ena av dem väntar på att den andra pic:ens pinne ska bli hög..ska man då göra speciella if-satser eller är det bara att kötta på??
Normalt, om processor A ska skicka signaler till processor B, så gör man pinnen på A till utgång, och pinnen på B til ingång. I så fall är det bara att "kötta på". Men om du är nybörjare och en ovan programmerare och gör ett misstag så att pinnarna på både A och B görs till utgångar kommer det att bli kortslutning och dina processorer kanske går upp i rök. Så som säkerhet kan man sätta ett motstånd i mellan, t.ex 1 kohm. Om man då gör fel så går en ström genom motståndet, men den är inte så hög.
If-satser? hur tänker du då?
Beror på i vilket sammanhang ... jag fick fundera ett tag, sen kom jag på att man brukar säga "flytande pinnar" om en del ingångar/utgångar på logik/processorkretsar.
Om det handlar om en in/ut-gång så betyder "flytande" att den varken har en bestämd nolla (GND) eller en bestämd etta (VCC) utan lämnas opåverkad. Ingångar ska inte lämnas "flytande", då det är olämpligt av olika orsaker (kan skapa störningar). Läser man av en flytande ingågn kan resultatet bli vad som helst (dvs antingen etta eller nolla).
Det finns fall då man vill lämna en utgång flytande. Sådana utgångar brukar kallas "tristate" eftersom de då kan ha tre olika tillstånd: etta, nolla eller "flytande". Fördelen med detta är att den då kan kopplas samman med andra utgångar som också är "tristate"... Bara en utgång i taget kan skicka data (dvs '0' eller '1').
Om man ska förklara mer om detta är det nog lämpligast om du har ett exempel där det förekommer.
I programmering finns ju även flyttal (float) och ibland pratar man om "floating point" - ett sätt att lagra tal i datorn, dvs. en variabeltyp. Det kanske var det du menade?
FLyttal används när man ska räkna med väldigt stora tal eller väldigt små tal eller med decimaltal. Flyttal kan vara olämpligt att använda i en PIC eftersom både programmet som hanterar flyttalen (multiplikation , division etc.) tar upp stor plats i minnet. Det tar dessutom ganska lång tid att utföra. Bättre att använda heltal om det går.
Vad är skillnaden mellan if(PORTC==0){.. och if(PORTC=0){... det vill säga när det är två (==) och ett (=) likhetstecken.
if ( A == B) { } jämför A och B. Om de är lika utförs satserna inom hakparentesen.
if ( A = B) { } betyder något helt annat, och bör undvikas. (kompilatorn bör varna!)
A = B betyder ju att A skall tilldelas värdet av B.
Skrivs det inne i en if-sats kommer detta att ske.
A och B jämförs aldrig. Vad som händer är att satserna i hakparenetesen utförs om B är skild från noll.
Ska man lägga något motstånd mellan två st microcontrollers när dem samverkar med varandra? T.ex. när ja kopplar första pinnen på båda pic:arna mot varandra och den ena av dem väntar på att den andra pic:ens pinne ska bli hög..ska man då göra speciella if-satser eller är det bara att kötta på??
Normalt, om processor A ska skicka signaler till processor B, så gör man pinnen på A till utgång, och pinnen på B til ingång. I så fall är det bara att "kötta på". Men om du är nybörjare och en ovan programmerare och gör ett misstag så att pinnarna på både A och B görs till utgångar kommer det att bli kortslutning och dina processorer kanske går upp i rök. Så som säkerhet kan man sätta ett motstånd i mellan, t.ex 1 kohm. Om man då gör fel så går en ström genom motståndet, men den är inte så hög.
If-satser? hur tänker du då?
Re: 3 enkla frågor..
Jag var lite osäker på if(A==) och if(a=b) men nu vet jag tacl så mycket..
Jag ska nämligen göra en linjeföljare och har två PIC:ar där den ena har hand om digitala sensorer och skickar ut en etta eller nolla på två av sina pinnar som nästa PIC tar emot och behandlar sedan informationen vidare till två effekt transistorer.. Jag är lite osäker på denna kod och min uppkoppling, testade allting o de funkade men de gick skit trögt vet inte vad det är för fel..
Verkar dessa koder vara helt åt skogen eller tycker du att den är enligt praxis??
Jag använder PIC12f683 på sensorn och PIC12f629 för transistorerna (väldigt lika).
Kod till sensorerna
void main() {
ADCON0 = 0xFF; //Shut down comparator
ANSEL = 0; // make inputs digital
while(1){
Start:
TRISIO=0x00; //MAKE OUTPUT
GPIO=0x30; // F4 and F5 are high.
Delay_us(20); // wait for capacitor to load.
TRISIO=0x30; //MAKE INPUT
Delay_us(70); //wait for capacitance to lose voltage.
if(GPIO==0x00){GPIO=0x00; goto END;} //strong reflection.
if(GPIO==0x20){GPIO=0x01; goto END;} //weak refleftion on F5
if(GPIO==0x10){GPIO=0x02; goto END;} //weak reflection on F4
END:
delay_ms(50);
}}
Koden till "informations behandlingen"
void main() {
CMCON = 0x07; // turn off comparators
TRISIO.F0 = 1; //GPIO0 is intput
TRISIO.F1 = 0; //GPIO1 is output
TRISIO.F2 = 0; //GPIO2 is output
TRISIO.F4 = 0; //GPIO4 is output
TRISIO.F5 = 1; //GPIO5 is input
GPIO=0x00;
Delay_ms(1000);
while(1){
if((GPIO.F0==0) && (GPIO.F5==0)) //every thing is ok and R should only go forward.
{while((GPIO.F0==0) && (GPIO.F5==0))
{GPIO.F4=1; GPIO.F1=1; delay_us(500); GPIO.F1=0; Delay_us(30); GPIO.F4=0; Delay_us(470);}}
if((GPIO.F0==1) && (GPIO.F5==0))
{while((GPIO.F0==1) && (GPIO.F5==0))
{GPIO.F4=1; delay_us(400); GPIO=0x00; Delay_us(600);}}
if((GPIO.F0==0) && (GPIO.F5==1))
{while((GPIO.F0==0) && (GPIO.F5==1))
{GPIO.F1=1; delay_us(380); GPIO=0x00; Delay_us(620);}}
}}
Som du ser så har jag olika PWM utdelningar på bägge motorerna (har två motorer). Har inte PWM inbyggt så får göra det i koden sj, finns det bättre sätt att göra på??
Jag ska nämligen göra en linjeföljare och har två PIC:ar där den ena har hand om digitala sensorer och skickar ut en etta eller nolla på två av sina pinnar som nästa PIC tar emot och behandlar sedan informationen vidare till två effekt transistorer.. Jag är lite osäker på denna kod och min uppkoppling, testade allting o de funkade men de gick skit trögt vet inte vad det är för fel..
Verkar dessa koder vara helt åt skogen eller tycker du att den är enligt praxis??
Jag använder PIC12f683 på sensorn och PIC12f629 för transistorerna (väldigt lika).
Kod till sensorerna
void main() {
ADCON0 = 0xFF; //Shut down comparator
ANSEL = 0; // make inputs digital
while(1){
Start:
TRISIO=0x00; //MAKE OUTPUT
GPIO=0x30; // F4 and F5 are high.
Delay_us(20); // wait for capacitor to load.
TRISIO=0x30; //MAKE INPUT
Delay_us(70); //wait for capacitance to lose voltage.
if(GPIO==0x00){GPIO=0x00; goto END;} //strong reflection.
if(GPIO==0x20){GPIO=0x01; goto END;} //weak refleftion on F5
if(GPIO==0x10){GPIO=0x02; goto END;} //weak reflection on F4
END:
delay_ms(50);
}}
Koden till "informations behandlingen"
void main() {
CMCON = 0x07; // turn off comparators
TRISIO.F0 = 1; //GPIO0 is intput
TRISIO.F1 = 0; //GPIO1 is output
TRISIO.F2 = 0; //GPIO2 is output
TRISIO.F4 = 0; //GPIO4 is output
TRISIO.F5 = 1; //GPIO5 is input
GPIO=0x00;
Delay_ms(1000);
while(1){
if((GPIO.F0==0) && (GPIO.F5==0)) //every thing is ok and R should only go forward.
{while((GPIO.F0==0) && (GPIO.F5==0))
{GPIO.F4=1; GPIO.F1=1; delay_us(500); GPIO.F1=0; Delay_us(30); GPIO.F4=0; Delay_us(470);}}
if((GPIO.F0==1) && (GPIO.F5==0))
{while((GPIO.F0==1) && (GPIO.F5==0))
{GPIO.F4=1; delay_us(400); GPIO=0x00; Delay_us(600);}}
if((GPIO.F0==0) && (GPIO.F5==1))
{while((GPIO.F0==0) && (GPIO.F5==1))
{GPIO.F1=1; delay_us(380); GPIO=0x00; Delay_us(620);}}
}}
Som du ser så har jag olika PWM utdelningar på bägge motorerna (har två motorer). Har inte PWM inbyggt så får göra det i koden sj, finns det bättre sätt att göra på??
Re: 3 enkla frågor..
Bara ett tips...
Använd inte två processorer om det inte är helt nödvändigt.
Saker och ting blir direkt mnycket mer komplicerade...
Används hellre en processor med fler pinnar om du behöver det.
Använd inte två processorer om det inte är helt nödvändigt.
Saker och ting blir direkt mnycket mer komplicerade...
Används hellre en processor med fler pinnar om du behöver det.
Re: 3 enkla frågor..
Mitt problem är att dem måste kunna göra flera saker samtidigt.. Finns det PIC:s som kan göra det? t.ex. om man kan köra flera trådar samtidigt..
Re: 3 enkla frågor..
> Mitt problem är att dem måste kunna göra flera saker samtidigt..
Jag är helt övertygad om att de inte behöver det.
Vad exakt menar du med "samtidigt" !?
Även om du behöver göra två "saker" med 1 millisekunds
intervall, så är det inte "samtidigt".
Om du har "flera trådar" så körs de i alla fall inte "samtidigt" utan
var och en, då och då. Ingen processor akn göra saker "samtidigt".
Självklart är ditt projekt inget problem för vilken PIC som helst.
Jag är helt övertygad om att de inte behöver det.
Vad exakt menar du med "samtidigt" !?
Även om du behöver göra två "saker" med 1 millisekunds
intervall, så är det inte "samtidigt".
Om du har "flera trådar" så körs de i alla fall inte "samtidigt" utan
var och en, då och då. Ingen processor akn göra saker "samtidigt".
Självklart är ditt projekt inget problem för vilken PIC som helst.
Re: 3 enkla frågor..
Jag använder två stycken reflex sensorer av denna typ: http://www.hobbytronik.se/product_info. ... sccgfcj632
Det är enkelt att läsa av dem digitalt men dessa saker ska ju göras (som det står på hemsidan och i min översta kod) samtidigt som PWM utdelningen, som ska vara olika på de två motorerna (de drar olika så ja får köra lite kortare duty cycle på den ena). Och så ska den ju såklart kunna svänga så det finns flera fall som man kan se i den nedre koden..
Det är enkelt att läsa av dem digitalt men dessa saker ska ju göras (som det står på hemsidan och i min översta kod) samtidigt som PWM utdelningen, som ska vara olika på de två motorerna (de drar olika så ja får köra lite kortare duty cycle på den ena). Och så ska den ju såklart kunna svänga så det finns flera fall som man kan se i den nedre koden..
Re: 3 enkla frågor..
OK, det är möjligt.
Det gör ändå inte att processorn behöver göra två saker "samtidigt".
Avläsningen av sensorerna kan sannolikt göras med, säg, 50-100 ms
intervall. Därimellan finns et massor av tid att göra annat, t.ex
generera PWM'en. PWM'en till motorerna görs lämpligen via de timers
som finns tillgängliga. Eller bättre med en PIC som kan generera dubbla
PWM signaler. Då blir det en fråga för koden enbart då PWM förhållandet
behöver ändras, förrutom då så behöver koden inte göra något alls
och kan allså göra annat "samtidigt" som du kaller det.
Det gör ändå inte att processorn behöver göra två saker "samtidigt".
Avläsningen av sensorerna kan sannolikt göras med, säg, 50-100 ms
intervall. Därimellan finns et massor av tid att göra annat, t.ex
generera PWM'en. PWM'en till motorerna görs lämpligen via de timers
som finns tillgängliga. Eller bättre med en PIC som kan generera dubbla
PWM signaler. Då blir det en fråga för koden enbart då PWM förhållandet
behöver ändras, förrutom då så behöver koden inte göra något alls
och kan allså göra annat "samtidigt" som du kaller det.
Re: 3 enkla frågor..
Om du använder inbyggda timers för att generera PWM så kommer processorn inte göra nånting - det kommer att sköta sig självt. Sök på PWM i databladet för din processor så hittar du nog något. Eller så kanske Sodjan har tips?
Jag programmerar inte PIC, så jag är lite lost när det gäller programkod för in/ut-signaler på PIC:en.
Hur snabbt behöver processorn kunna reagera på signal från sensorerna?
Men jag hade kanske valt att köpa en analog reflexsensor istället (se din länk) och använt processorns komparator. Då får man omedelbart resultat och slipper vänta så länge för varje mätvärde.
Jag programmerar inte PIC, så jag är lite lost när det gäller programkod för in/ut-signaler på PIC:en.
Hur snabbt behöver processorn kunna reagera på signal från sensorerna?
Det verkar som att det även här går att använda en timer.Den typiska sekvensen för att läsa av en sensor är:
Sätt I/O porten till utgången och sätt den hög.
Vänta åtminstone 10 us för att ladda upp 10 nF kondensatorn.
Gör I/O porten till ingång (hög impedans)
Mät tiden för kondensatorn att urladdas genom att vänta tills ingången går låg
Men jag hade kanske valt att köpa en analog reflexsensor istället (se din länk) och använt processorns komparator. Då får man omedelbart resultat och slipper vänta så länge för varje mätvärde.
Re: 3 enkla frågor..
Mitt problem är att ja inte kan assembler kod och vet itne hur man använder timers i C-programming (microc)..
Samma sak med A/D-omvandlig eller att använda komparatorn (är nybörjare =( ..
När det gäller att köra allt på en o samma kod.. visst men kommer det inte leda till att PWM-sekvenserna kommer komma i omgångar? Den måste göra en massa saker innan den ska köra PWM-koden o ja e rädd för att de blir för ojämt.
Samma sak med A/D-omvandlig eller att använda komparatorn (är nybörjare =( ..
När det gäller att köra allt på en o samma kod.. visst men kommer det inte leda till att PWM-sekvenserna kommer komma i omgångar? Den måste göra en massa saker innan den ska köra PWM-koden o ja e rädd för att de blir för ojämt.
- Klas-Kenny
- Inlägg: 11843
- Blev medlem: 17 maj 2010, 19:06:14
- Ort: Växjö/Alvesta
Re: 3 enkla frågor..
Det bästa tipset jag kan ge dig är att lära dig Assembly! 
Inte för att mycket är lättare att göra i ASM, men det ger viktiga kunskaper kring hur processorn arbetar och är uppbyggd.
Sen så tror jag inte att det är några speciella funktioner för att använda Timers/PWM i C, det som ska göras är att skriva rätt data till rätt register, så kommer det att hoppa igång "automatiskt" i processorn.

Inte för att mycket är lättare att göra i ASM, men det ger viktiga kunskaper kring hur processorn arbetar och är uppbyggd.
Sen så tror jag inte att det är några speciella funktioner för att använda Timers/PWM i C, det som ska göras är att skriva rätt data till rätt register, så kommer det att hoppa igång "automatiskt" i processorn.
Re: 3 enkla frågor..
> och vet itne hur man använder timers i C-programming (microc)..
Men det lilla problemet är ju väldigt lätt att fixa !
Ingen annan heller har kunnat det från början, hur tror du att de gjorde ?
> När det gäller att köra allt på en o samma kod.. visst men kommer det inte leda till
> att PWM-sekvenserna kommer komma i omgångar?
Nja, PWM är ju bara en utgång som ändras då-och-då. Under tiden imellan
finns det tid att göra annat. Vilken PWM frekvens har du tänkt ? Och som
sagt, många processorer har inbyggd hårdvara för att generera PWM
signaler, men sätter ett register och sen rullar det automatiskt.
> Den måste göra en massa saker innan den ska köra PWM-koden o ja e
> rädd för att de blir för ojämt.
En PIC kan göra "en massa saker" på nästan ingen tid alls. Det beror helt på vad
"en massa saker" är. Och som sagt, hårdvaru-PWM är inte beroende av vad
processorn gör för övrigt.
Jag tror att du behöver bryta ner projektet i mindre delar och inte försöka greppa
allt på en gång. Ta en sak i taget. Just nu saknar du rena grunder som gör att
du sannolikt inte kommer att komma någonstans. Och att försöka bygga ett
system med flera kommunicerande processorer gör det värre.
Men det lilla problemet är ju väldigt lätt att fixa !

Ingen annan heller har kunnat det från början, hur tror du att de gjorde ?
> När det gäller att köra allt på en o samma kod.. visst men kommer det inte leda till
> att PWM-sekvenserna kommer komma i omgångar?
Nja, PWM är ju bara en utgång som ändras då-och-då. Under tiden imellan
finns det tid att göra annat. Vilken PWM frekvens har du tänkt ? Och som
sagt, många processorer har inbyggd hårdvara för att generera PWM
signaler, men sätter ett register och sen rullar det automatiskt.
> Den måste göra en massa saker innan den ska köra PWM-koden o ja e
> rädd för att de blir för ojämt.
En PIC kan göra "en massa saker" på nästan ingen tid alls. Det beror helt på vad
"en massa saker" är. Och som sagt, hårdvaru-PWM är inte beroende av vad
processorn gör för övrigt.
Jag tror att du behöver bryta ner projektet i mindre delar och inte försöka greppa
allt på en gång. Ta en sak i taget. Just nu saknar du rena grunder som gör att
du sannolikt inte kommer att komma någonstans. Och att försöka bygga ett
system med flera kommunicerande processorer gör det värre.
Re: 3 enkla frågor..
>"... PWM-sekvenserna ..."
Alltså, om du genererar PWM med timers, så sker det automatiskt utan att processorn behöver lägga sig i. Alltså behöver ingen programkod köras alls för att PWM-pulserna ska fortsätta genereras.
Sen är det så (tycker jag) att du gör samma sak oavsett om du använder assembler eller C.
Det finns bibliotek med funktioner i C som är till för att förenkla användningen av processorns olika enheter, men det betyder inte att det är svårare att programmera i C för det. Det bör väl finnas bra dokumentation till biblioteken?
Det bästa du kan göra i det här läget, tror jag, är att låna eller köpa boken "Microcontrollers : från assembler till RTOS / Lars Bengtsson". Den är superbra och går igenom de viktiga grunderna på ett enkelt sätt. Har du läst den så kommer du att förstå väldigt mycket mer om hur en PIC fungerar. (Man använder just PIC i alla sina exempel i boken).
Boken använder både assembler och C i sina exempel.
Alltså, om du genererar PWM med timers, så sker det automatiskt utan att processorn behöver lägga sig i. Alltså behöver ingen programkod köras alls för att PWM-pulserna ska fortsätta genereras.
Sen är det så (tycker jag) att du gör samma sak oavsett om du använder assembler eller C.
Det finns bibliotek med funktioner i C som är till för att förenkla användningen av processorns olika enheter, men det betyder inte att det är svårare att programmera i C för det. Det bör väl finnas bra dokumentation till biblioteken?
Det bästa du kan göra i det här läget, tror jag, är att låna eller köpa boken "Microcontrollers : från assembler till RTOS / Lars Bengtsson". Den är superbra och går igenom de viktiga grunderna på ett enkelt sätt. Har du läst den så kommer du att förstå väldigt mycket mer om hur en PIC fungerar. (Man använder just PIC i alla sina exempel i boken).
Boken använder både assembler och C i sina exempel.
Re: 3 enkla frågor..
Med "float" kan det menas en ingång som inte är ansluten ELLER floating point. Det senare betyder flytal, t.ex. 3,14159265. Kan man bör man undvika alla former av flyttal då behandlingen av dom kräver en hel del plats och datorkraft och det är sällan att de ger någon speciell bra precision.
Med "flyttal" menas tal som kan ha kommat placerat lite varstans i värdet.
Som andra skriver: välj att ha så få µC som möjligt inblandat i något projekt. Det är såklart möjligt att ha processorer att kommunicera med varandra men det är synnerligt mer komplicerat än att koppla ihop ett par pinnar och sedan är det klart.
Flera µC kan man använda om det är enheter som "styr sig själv" men behöver en överordnat besked om att utföra en viss funktion eller liknande, alltså en bra bit över vad du vill åstadkomma.
Behöver man 2 PWM-enheter väljer man en µC med minst 2 PWM-enheter i, så enkelt är det!
Med "flyttal" menas tal som kan ha kommat placerat lite varstans i värdet.
Som andra skriver: välj att ha så få µC som möjligt inblandat i något projekt. Det är såklart möjligt att ha processorer att kommunicera med varandra men det är synnerligt mer komplicerat än att koppla ihop ett par pinnar och sedan är det klart.
Flera µC kan man använda om det är enheter som "styr sig själv" men behöver en överordnat besked om att utföra en viss funktion eller liknande, alltså en bra bit över vad du vill åstadkomma.
Behöver man 2 PWM-enheter väljer man en µC med minst 2 PWM-enheter i, så enkelt är det!
Re: 3 enkla frågor..
Jag var inblandad i ett projekt hos en större biltillverkare för ett par år sedan där man skulle ha åtta insprutningsventiler i en motor. Projektet handlade om effektivitet och optimering, så det var mycket noga att insprutning skedde mycket exakt.... Nu blev det inte så mycket med detta projekt, men då funderade man på att ha åtta separata AVR-processorer som körde sina egna timers, som tog emot en gemensam tidssignal in som synkade dem.
Alla åtta hade säkert gått att ersätta med en lite kraftfullare (med en timer med åtta compare-register).
Alla åtta hade säkert gått att ersätta med en lite kraftfullare (med en timer med åtta compare-register).