Varför en sådan bra precision på MCP3008 jämfört med ATmega?
- Synesthesia
- Inlägg: 586
- Blev medlem: 22 januari 2010, 19:14:10
- Ort: Mellan Göteborg och Kungsbacka
Re: Varför en sådan bra precision på MCP3008 jämfört med ATm
ATmega328 har både 8 och 16 bit timer. Fast använder du Arduino standardfunktioner så finns det bara färdiga funktioner för att skriva till timrarna som 8-bit, skall du använda den som 16-bit måste du programmera registren i timern direkt.
Re: Varför en sådan bra precision på MCP3008 jämfört med ATm
Här finns ett bilbiotek för Timer 1, 16-bitars timern. https://playground.arduino.cc/Code/Timer1 du får testa helt enkelt.
Det är inte speciellt svårt att ställa in med registren heller, men lite googling behövs som stöd kan jag tänka.
De här kretsarna du använt har sin plats, speciellt om det behövs väldigt många ADC-ingångar eller PWM-utgångar.
Det är inte speciellt svårt att ställa in med registren heller, men lite googling behövs som stöd kan jag tänka.
De här kretsarna du använt har sin plats, speciellt om det behövs väldigt många ADC-ingångar eller PWM-utgångar.
- lillahuset
- Gått bort
- Inlägg: 13969
- Blev medlem: 3 juli 2008, 08:13:14
- Ort: Norrköping
Re: Varför en sådan bra precision på MCP3008 jämfört med ATm
Volvo740: Var inte så lat, läs databladen.
http://ww1.microchip.com/downloads/en/D ... asheet.pdf
http://ww1.microchip.com/downloads/en/D ... 21295d.pdf
http://cache.nxp.com/docs/en/data-sheet ... df?pspll=1
Edit: ATmega328 har tillgång till 16 bit PWM. Se p.149 i databladet.
http://ww1.microchip.com/downloads/en/D ... asheet.pdf
http://ww1.microchip.com/downloads/en/D ... 21295d.pdf
http://cache.nxp.com/docs/en/data-sheet ... df?pspll=1
Edit: ATmega328 har tillgång till 16 bit PWM. Se p.149 i databladet.
Re: Varför en sådan bra precision på MCP3008 jämfört med ATm
Okej. Då hade man fel! Som tur så ska jag inte köra Arduino. Jag tänker använda min Raspberry PI som PLC och Arduino som I/O modul. Men troligtvis blir det endast att jag använder Raspberry PI som både I/O modul och PLC.
Där blir jag tvungen att använda MPC3008 och PWM-chippet.
Hm...endast C-kod och Assembler i databladet och inget C++? Tider förändras tydligen. Tack för databladet.
Där blir jag tvungen att använda MPC3008 och PWM-chippet.
Hm...endast C-kod och Assembler i databladet och inget C++? Tider förändras tydligen. Tack för databladet.
Re: Varför en sådan bra precision på MCP3008 jämfört med ATm
C++ ? Vad skulle det tillföra? Ingen kör OO för mindre processorer.
Det är inget som har förändrats på den punkten.
(Visst, Arduino kör nog en C++ kompilator i bakgrunden, men så vitt
jag vet så körs det i princip bara C-kod genom den i alla fall. Jag tror
inte att Arduino biblioteken använder någon OO kod...)
Det är inget som har förändrats på den punkten.
(Visst, Arduino kör nog en C++ kompilator i bakgrunden, men så vitt
jag vet så körs det i princip bara C-kod genom den i alla fall. Jag tror
inte att Arduino biblioteken använder någon OO kod...)
Re: Varför en sådan bra precision på MCP3008 jämfört med ATm
När jag var yngre så såg jag någon som programmerade C++ i en mikrokontroller. Varför C++ användes vet jag inte. Men jag antar att C sparar mer minne än C++.
Arduino använder C++, även biblioteken är C++.
Arduino använder C++, även biblioteken är C++.
Re: Varför en sådan bra precision på MCP3008 jämfört med ATm
Nej Arduino använder vare sig C eller C++.
Nativt används en variant av WIRE vilket liknar C++, den nativa utvecklingsmiljön är baserad på Processing.
Libbarna är skrivna i både C och C++ och kompilerade med gcc.
Dock är det så att med en annan kompilator än den nativa, så kan man naturligtvis skriva program för Arduino ( då den är AVR-baserad) i vilket språk man vill.
Med en AVR assembler kan man skriva program med Assembler Mneonics.
http://www.wiring.org.co/
https://processing.org/
Enkelt uttryck så är Wire en blandning av C och C++, där man tagit vissa delar, men inte alla från C och vissa delar, men inte alla från C++.
Beträffande AD-omvandling, så är det inte ovanligt att man maskar bort lsb eller två.
Stabiliteten beror enbart på hur man gör det elektriskt, dvs läser databladen mycket noggrant, då det finns många fallgropar. En del AD-omvandlare är dessutom enklare att jobba med än andra.
Nativt används en variant av WIRE vilket liknar C++, den nativa utvecklingsmiljön är baserad på Processing.
Libbarna är skrivna i både C och C++ och kompilerade med gcc.
Dock är det så att med en annan kompilator än den nativa, så kan man naturligtvis skriva program för Arduino ( då den är AVR-baserad) i vilket språk man vill.
Med en AVR assembler kan man skriva program med Assembler Mneonics.
http://www.wiring.org.co/
https://processing.org/
Enkelt uttryck så är Wire en blandning av C och C++, där man tagit vissa delar, men inte alla från C och vissa delar, men inte alla från C++.
Beträffande AD-omvandling, så är det inte ovanligt att man maskar bort lsb eller två.
Stabiliteten beror enbart på hur man gör det elektriskt, dvs läser databladen mycket noggrant, då det finns många fallgropar. En del AD-omvandlare är dessutom enklare att jobba med än andra.