Varför en sådan bra precision på MCP3008 jämfört med ATmega?

PIC, AVR, Arduino, Raspberry Pi, Basic Stamp, PLC mm.
Användarvisningsbild
Synesthesia
Inlägg: 574
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

Inlägg av Synesthesia »

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.
Användarvisningsbild
hawkan
Inlägg: 2585
Blev medlem: 14 augusti 2011, 10:27:40

Re: Varför en sådan bra precision på MCP3008 jämfört med ATm

Inlägg av hawkan »

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.
Användarvisningsbild
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

Inlägg av lillahuset »

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.
Volvo740
Inlägg: 149
Blev medlem: 15 juli 2017, 19:11:01

Re: Varför en sådan bra precision på MCP3008 jämfört med ATm

Inlägg av Volvo740 »

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.
Användarvisningsbild
sodjan
EF Sponsor
Inlägg: 43148
Blev medlem: 10 maj 2005, 16:29:20
Ort: Söderköping
Kontakt:

Re: Varför en sådan bra precision på MCP3008 jämfört med ATm

Inlägg av sodjan »

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...)
Volvo740
Inlägg: 149
Blev medlem: 15 juli 2017, 19:11:01

Re: Varför en sådan bra precision på MCP3008 jämfört med ATm

Inlägg av Volvo740 »

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++.
Användarvisningsbild
TomasL
EF Sponsor
Inlägg: 45169
Blev medlem: 23 september 2006, 23:54:55
Ort: Borås
Kontakt:

Re: Varför en sådan bra precision på MCP3008 jämfört med ATm

Inlägg av TomasL »

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.
Skriv svar