AVR läsa av 2st ADC-pinnar typ samtidigt problem nybörjare

PIC, AVR, Arduino, Raspberry Pi, Basic Stamp, PLC mm.
SeniorLemuren
Inlägg: 7809
Blev medlem: 26 maj 2009, 12:20:37
Ort: Kristinehamn

Re: AVR läsa av 2st ADC-pinnar typ samtidigt problem nybörja

Inlägg av SeniorLemuren »

Klas-Kenny skrev:Med "ren" C får man dock lära sig mycket mer om hur man läser datablad och hur processorn egentligen fungerar. Vilket är mycket användbart vid många problem, och inte minst den dag man vill köra någon annan processor.
Ren C? Skall man lära sig på riktigt hur en processor fungerar så är skillnaden mellan Arduino C och C i stort sett försumbar. Då är det ingenting annat än assembler som gäller.
Användarvisningsbild
Klas-Kenny
Inlägg: 11328
Blev medlem: 17 maj 2010, 19:06:14
Ort: Växjö/Alvesta

Re: AVR läsa av 2st ADC-pinnar typ samtidigt problem nybörja

Inlägg av Klas-Kenny »

Okej, rättelse; hur periferienheterna fungerar, inte processorkärnan.
Användarvisningsbild
Icecap
Inlägg: 26139
Blev medlem: 10 januari 2005, 14:52:15
Ort: Aabenraa, Danmark

Re: AVR läsa av 2st ADC-pinnar typ samtidigt problem nybörja

Inlägg av Icecap »

tokfan: som du ser är det en viss skillnad i uppfattning av vad som är "bra" - så DIN definition är vad som gäller för DIG!

Tyvärr är Arduino's C inte helt enligt standarden, detta då inlärningströskeln på "riktig" C är lite högre.
Arduino är ett system som ska vara lättuggad, lite som färdigköpt barnmat, då är starttröskeln lägre.

Jag avskyr personligen Arduino, just av den anledning - men sedan är jag ganska hard-core p.g.a. en besvärlig "uppväxt" med Z80.

Sedan är det ju så att OAVSETT hur man löser en uppgift är den ju löst, vara sig det är i C, assembler, BASIC, JAL, Pascal eller vilket annat språk man använder.
tokfan
Inlägg: 694
Blev medlem: 10 juni 2010, 14:05:13

Re: AVR läsa av 2st ADC-pinnar typ samtidigt problem nybörja

Inlägg av tokfan »

Hihi.
Är lite samma grej som att fråga på ett musikforum om Mac eller pc är bäst för musikproduktion tror jag.
Jag nöter vidare med mitt "C/lågnivå/ett snäpp över assembler" eller vad jag ska kalla det.
Kör nog fast ganska snart igen med bitmaskande och operander inser jag nu när jag ska läsa av att min kabeltestare skickar signal på en pinne och tar emot över 2V på två pinnar (ADC) samtidigt som det ska vara 0V på de två övriga pinnarna.

Kom på att om det är kortis till en av de övriga I/O pinnarna så blir ju även den spänningen för låg för I/O port att notera.

Har byggt skiten fel från början. Får göra det bästa av det.
Användarvisningsbild
hawkan
Inlägg: 2621
Blev medlem: 14 augusti 2011, 10:27:40

Re: AVR läsa av 2st ADC-pinnar typ samtidigt problem nybörja

Inlägg av hawkan »

Icecap skrev:tokfan: som du ser är det en viss skillnad i uppfattning av vad som är "bra" - så DIN definition är vad som gäller för DIG!

Tyvärr är Arduino's C inte helt enligt standarden, detta då inlärningströskeln på "riktig" C är lite högre.
Arduino är ett system som ska vara lättuggad, lite som färdigköpt barnmat, då är starttröskeln lägre.

Jag avskyr personligen Arduino, just av den anledning - men sedan är jag ganska hard-core p.g.a. en besvärlig "uppväxt" med Z80.

Sedan är det ju så att OAVSETT hur man löser en uppgift är den ju löst, vara sig det är i C, assembler, BASIC, JAL, Pascal eller vilket annat språk man använder.
Du är helt fel ute när det gäller arduino och C. Sluta tjafsa om det när du inte begriper bättre.

Låt oss se vad Arduino själva säger.
Namnlös.png
Du har inte behörighet att öppna de filer som bifogats till detta inlägg.
tokfan
Inlägg: 694
Blev medlem: 10 juni 2010, 14:05:13

Re: AVR läsa av 2st ADC-pinnar typ samtidigt problem nybörja

Inlägg av tokfan »

Snabbfråga om någon fortfarande läser här:

Jag vill kolla att jag inte får spänning på någon av tre pinnar på en port.

Fattar inte hur jag ska göra. Exemplet nedan är åt pipan.

If(PIND & 0b11100000 == 0)
visa ok

Else
Visa fel.
Användarvisningsbild
arvidb
Inlägg: 4537
Blev medlem: 8 maj 2004, 12:56:24
Ort: Stockholm

Re: AVR läsa av 2st ADC-pinnar typ samtidigt problem nybörja

Inlägg av arvidb »

Visa hela koden så är det mycket lättare att hjälpa. Är syntaxen rätt, har du satt upp pinnarna som inputs, etc...
tokfan
Inlägg: 694
Blev medlem: 10 juni 2010, 14:05:13

Re: AVR läsa av 2st ADC-pinnar typ samtidigt problem nybörja

Inlägg av tokfan »

Är inte vid datorn nu.
Har så begränsad tid vid den så jag försöker snoka innan för att vara förberedd.

Men är If satsen korrekt med tecken och allt?
Man ANDar hela porten med 0b1110000.
Är någon av de tre översta pinnarna i porten hög blir det True och inte ==0.
Användarvisningsbild
Icecap
Inlägg: 26139
Blev medlem: 10 januari 2005, 14:52:15
Ort: Aabenraa, Danmark

Re: AVR läsa av 2st ADC-pinnar typ samtidigt problem nybörja

Inlägg av Icecap »

hawkan: jag har visst begrepp om det! Du borde se det själv i den text du lägger fram.

Sedan ingår det INTE i Standard C att man har en separat Startup()-funktion som är skiljd från main().

Jag var mycket väl om att Arduinos C kompileras av en standard GNU C kompiler - EFTER ATT DEN ÄR AUTOMATISK MODDAD LITE - vilket just är vad Arduino själv skriver om detta.

Det är inte standard C om inte man kan kompilera källkoden i C-kompilern utan dessa moddningar.

Sedan ser jag många andra problem med Arduino som sådan men de är kanske inte helt objektiva, något jag aldrig heller har dold.
Användarvisningsbild
arvidb
Inlägg: 4537
Blev medlem: 8 maj 2004, 12:56:24
Ort: Stockholm

Re: AVR läsa av 2st ADC-pinnar typ samtidigt problem nybörja

Inlägg av arvidb »

tokfan skrev:Men är If satsen korrekt med tecken och allt?
Man ANDar hela porten med 0b1110000.
Är någon av de tre översta pinnarna i porten hög blir det True och inte ==0.
C har så vitt jag vet inget stöd för binära konstanter, så "0b11100000" bör ge kompileringsfel. "0xE0" eller "224" borde funka istället.
tokfan
Inlägg: 694
Blev medlem: 10 juni 2010, 14:05:13

Re: AVR läsa av 2st ADC-pinnar typ samtidigt problem nybörja

Inlägg av tokfan »

Tack!
Ska testa hexadecimalt istället då
Användarvisningsbild
sodjan
EF Sponsor
Inlägg: 43178
Blev medlem: 10 maj 2005, 16:29:20
Ort: Söderköping
Kontakt:

Re: AVR läsa av 2st ADC-pinnar typ samtidigt problem nybörja

Inlägg av sodjan »

> C har så vitt jag vet inget stöd för binära konstanter,

Jag vet inte om C, men Arduino har det (lite annan syntax dock):

https://www.arduino.cc/reference/en/lan ... constants/
Mr Andersson
Inlägg: 1397
Blev medlem: 29 januari 2011, 21:06:30
Ort: Lapplandet

Re: AVR läsa av 2st ADC-pinnar typ samtidigt problem nybörja

Inlägg av Mr Andersson »

hawkan skrev: Låt oss se vad Arduino själva säger.

(bild)
Jovisst, wiring (som arduinos språkvariant heter) är C++ på samma sätt som tyska är svenska om man kör det genom en översättare. Som icecap säger, frångår man standarden slutar det vara c++.
Vi har testat anställa embedded-programmerare som påstår sig kunna c++ från arduino-plattformen. De flesta är helt vilse när man tar bort stödhjulen.
- Vadå deklarera funktioner innan de anropas? Vad menar du?
- Vadå main? Programmet ska ju starta i setup.
- Vadå datablad? Finns det ingen färdig kod?
etc..

Dock är de inte dåliga programmerare i sig. De är bara inte c(++)-programmerare. Jag är övertygad om att de allra flesta enkelt kan lära sig skillnaderna, vi har bara inte tid att utbilda dem.

Och det där "all standard constructs should work in arduino". Det vet jag från personlig erfarenhet att det inte gör. Deras automagiska kod-generering har stora problem och kraschar med vissa constexpr-templates som vanliga avr-g++ hanterar problemfritt.

arvidb skrev:
tokfan skrev:C har så vitt jag vet inget stöd för binära konstanter, så "0b11100000" bör ge kompileringsfel. "0xE0" eller "224" borde funka istället.
C tillåter kompilatortillverkaren att lägga till valfria prefix. gcc har 0b.
C++ har 0b-prefix som ett krav sedan c++14.
Användarvisningsbild
Wedge
Inlägg: 1026
Blev medlem: 8 juli 2012, 17:33:33

Re: AVR läsa av 2st ADC-pinnar typ samtidigt problem nybörja

Inlägg av Wedge »

sodjan skrev:> C har så vitt jag vet inget stöd för binära konstanter,

Jag vet inte om C, men Arduino har det (lite annan syntax dock):

https://www.arduino.cc/reference/en/lan ... constants/
Det "stödet" är implementerat som 256 st #define, så visst finns det i vanilj-C också, om man vill/orkar.
Skriv svar