Der AVR-/ARDUINO-Faden

Der chaotische Hauptfaden

Moderatoren: Heaterman, Finger, Sven, TDI, Marsupilami72, duese

Benutzeravatar
Hightech
Beiträge: 9041
Registriert: So 11. Aug 2013, 18:37

Re: Der AVR-/ARDUINO-Faden

Beitrag von Hightech » Fr 26. Nov 2021, 13:01

Dafür brauchen wir einen Schaltplan, um das bewerten zu können.

Benutzeravatar
Cubicany
Beiträge: 3543
Registriert: Sa 15. Feb 2020, 17:48
Wohnort: Soest

Re: Der AVR-/ARDUINO-Faden

Beitrag von Cubicany » Fr 26. Nov 2021, 13:50

Hightech hat geschrieben:
Fr 26. Nov 2021, 13:01
Dafür brauchen wir einen Schaltplan, um das bewerten zu können.
Mache ich daheim in einer ruhigen Minute mal fertig.

Benutzeravatar
Cubicany
Beiträge: 3543
Registriert: Sa 15. Feb 2020, 17:48
Wohnort: Soest

Re: Der AVR-/ARDUINO-Faden

Beitrag von Cubicany » Fr 26. Nov 2021, 14:17

Also das Programm mit dem Timer läuft immer noch nicht wie es soll.

Denn es ist irgendwie egal, was ich als Zeiten eintrage.

Hier, vielleicht ja jemand den Fehler:

Code: Alles auswählen

#define ICPin 3 // Pin Einlesen IC
#define RelaisPin 5 // Pin Schalten Relais
long int timer=0;

void setup() {

  // put your setup code here, to run once
pinMode(ICPin, INPUT_PULLUP);
pinMode(RelaisPin,OUTPUT); 
digitalWrite (RelaisPin, HIGH);

 TCCR0A=(1<<WGM01);    //Set the CTC mode  
  OCR0A=0xF9; //Value for ORC0A for 1ms

  TIMSK0|=(1<<OCIE0A);   //Set the interrupt request
  sei(); //Enable interrupt

 

  TCCR0B|=(1<<CS01);    //Set the prescale 1/64 clock
  TCCR0B|=(1<<CS00);

}
void loop()
{
                //if (digitalRead(3)==HIGH)
               // {
                               if(timer>=10000)
                               {
              timer=0;
                                               digitalWrite (RelaisPin, LOW);
                               if(timer>=10000)
                               { 
               timer=0;
                               }
                                               digitalWrite (RelaisPin, HIGH);
}//}
                               ISR(TIMER0_COMPA_vect)
                               {    //This is the interrupt request
                               timer++;
                               }
Ich bin nach 3 Stunden davor sitzen nicht mehr in der Lage, irgendwas darin zu erkennen.

ch_ris
Beiträge: 2112
Registriert: Mo 30. Nov 2015, 10:08

Re: Der AVR-/ARDUINO-Faden

Beitrag von ch_ris » Fr 26. Nov 2021, 17:55

sorry, ich bin da zu faul zu. ich nehm einfach millis, oder wenn aus irgendwelche spezial Gründe nicht möglich, eine Timerone/two...Lib.

andreas6
Beiträge: 3627
Registriert: So 11. Aug 2013, 15:09

Re: Der AVR-/ARDUINO-Faden

Beitrag von andreas6 » Fr 26. Nov 2021, 18:13

Ohne jetzt das Programm zu testen, ich habe schlicht kein Umfeld dazu. Aber hier sind ein paar schlechte Angewohnheiten drin.
Oben wird ICPin und RelaisPin definiert. Später werden teilweise wieder numerische Angaben verwendet. Murks! Nach der Definition sind ausschließlich die definierten Konstanten zu verwenden. Sonst kann man sich diese nämlich sparen und nur auf Zahlen setzen. Nur wird der Code dann komplett unlesbar.
Die gewünschte Logik innerhalb von loop() ist nicht gegeben. Vermutlich sind Klammern entfernt worden und dann nach Syntaxmeckereien planlos ans Ende angefügt worden. Hier empfehle ich erneut den Einsatz des ursprünglichen Quellcodes - der muss mal funktioniert haben.
Die Lesbarkeit des Codes geht gegen Null, dabei sind das nur wenige Zeilen. Korrekte Einrückung und Klammerung sind für die Übersicht notwendig. Ein für die Programmierung geeigneter Editor kann dabei sehr helfen.
Ansonsten lernt es sich deutlich einfacher ohne Timer, viele Grundfunktionen brauchen den nicht. Register durchzählen und auswerten ist viel einfacher und besser zu durchschauen.

MfG. Andreas

Benutzeravatar
Fritzler
Beiträge: 11728
Registriert: So 11. Aug 2013, 19:42
Wohnort: D:/Berlin/Adlershof/Technologiepark
Kontaktdaten:

Re: Der AVR-/ARDUINO-Faden

Beitrag von Fritzler » Fr 26. Nov 2021, 18:41

Ja, solch schlechten Code sieht man echt selten.

Es sollte wirklich BEVOR irgendwie weitergemacht wird ein Buch konsultiert werden.
Das führt sonst einfach zu nichts, da ist nichtmal das grundlegendste Verständnis der Klammersetzung vorhanden.

Benutzeravatar
Cubicany
Beiträge: 3543
Registriert: Sa 15. Feb 2020, 17:48
Wohnort: Soest

Re: Der AVR-/ARDUINO-Faden

Beitrag von Cubicany » Fr 26. Nov 2021, 20:31

Ich muss zur Ehrenrettung dazu sagen, dass das nicht mein Code ist.

Ich habe da mit wem per Mail Kontakt gehabt und wir haben uns den Code immer
hin und her gemailt und es gab nie einen wirklich funktionierenden Stand.

Tja, muss ich mir morgen mit gaaanz viel Muße nochmal rein tun.

ch_ris
Beiträge: 2112
Registriert: Mo 30. Nov 2015, 10:08

Re: Der AVR-/ARDUINO-Faden

Beitrag von ch_ris » Fr 26. Nov 2021, 21:16

du musst erstmal n vernünftigen editor haben. notepad++ zb. und den text formatieren. dauert eine Tastenkombination. im Grunde das gleiche was ich bei dem mathe Problem geschrieben hab. so wie oben stellst du dir selber ein bein.

edit. np++ hab ich schon ewig, nervt aber seit längerer Zeit. -> PSPad scheint ganz gut.
Zuletzt geändert von ch_ris am Sa 27. Nov 2021, 09:18, insgesamt 2-mal geändert.

Anse
Beiträge: 1976
Registriert: Mo 12. Aug 2013, 21:30
Wohnort: Bühl

Re: Der AVR-/ARDUINO-Faden

Beitrag von Anse » Sa 27. Nov 2021, 00:30

Cubicany hat geschrieben:
Fr 26. Nov 2021, 14:17
Hier, vielleicht ja jemand den Fehler:
Es fehlt auf jeden Fall eine geschweifte Klammer zu. Sollte definitiv einen Syntaxfehler bringen.
Vielleicht ist die auch beim wilden Auskommentieren drauf gegangen.

ch_ris
Beiträge: 2112
Registriert: Mo 30. Nov 2015, 10:08

Re: Der AVR-/ARDUINO-Faden

Beitrag von ch_ris » Di 7. Dez 2021, 10:22

Cubicany hat geschrieben:
Fr 26. Nov 2021, 20:31
Tja, muss ich mir morgen mit gaaanz viel Muße nochmal rein tun.
Und? Hast die Fehler gefunden?
--------------------------
Ich will mir mal einen HV Fuse Doctor bauen um beim Tiny den Reset Pin nutzen zu können.
Wie ist das denn das bei einem verfusten Nano?
Ich las, man müsse zumindest den Quarz ablöten oder den 328p komplett auslöten.
Das macht das absurd für mich, dann brauch ich den entsprechenden Code nicht zu einzubauen.
(Von der Kontaktierungs-Problematik mal ganz abgesehen, aber das wäre noch irgendwie lösbar.)

Benutzeravatar
Cubicany
Beiträge: 3543
Registriert: Sa 15. Feb 2020, 17:48
Wohnort: Soest

Re: Der AVR-/ARDUINO-Faden

Beitrag von Cubicany » Di 7. Dez 2021, 12:20

ch_ris hat geschrieben:
Di 7. Dez 2021, 10:22
Cubicany hat geschrieben:
Fr 26. Nov 2021, 20:31
Tja, muss ich mir morgen mit gaaanz viel Muße nochmal rein tun.
Und? Hast die Fehler gefunden?
Ne, ich nicht, aber der, von dem das kam.

Da musste noch irgendwie ein Flag als Merker rein, mehr habe ich nicht verstanden.

Benutzeravatar
Weisskeinen
Beiträge: 3859
Registriert: Di 27. Aug 2013, 16:19

Re: Der AVR-/ARDUINO-Faden

Beitrag von Weisskeinen » Di 14. Dez 2021, 18:46

Code: Alles auswählen

...
if(timer>=10000)
{
	timer=0;
        digitalWrite (RelaisPin, LOW);
	if(timer>=10000)
        { 
        	timer=0;
        }
        digitalWrite (RelaisPin, HIGH);
...
Merkste was? Die zweite verschachtelte if-Abfrage wird nie aufgerufen (warum auch, timer ist ja schon aus Null gesetzt) und wird möglicherweise komplett weg optimiert. Und der Relais-Pin ist so kurz LOW, dass das Relais das nie und nimmer merkt. Was das soll, weiß ich nicht...

Edit: Wenn man variablen im Hauptprogramm und in einer Interruptroutine verändert, sollte man die übrigens noch als volatile deklarieren. Sonst können da ganz seltsame Sachen passieren, je nach Lust und Laune des Compilers...

Benutzeravatar
Toddybaer
Beiträge: 4089
Registriert: Sa 11. Jun 2016, 13:48
Wohnort: Hemmoor

Re: Der AVR-/ARDUINO-Faden

Beitrag von Toddybaer » Mi 29. Dez 2021, 10:22

Nimmt man bei einem Arduino zur Datenübertragung nun GSM oder LTE Module?
Viele Daten sind das nicht.

LAN und W-LAN gis zwar auch noch, hab ich aber nicht überall zur Verfügung

Kann der Arduino bei einem Interrupt dann auch per Telefon nach hause telefonieren? Oder über einen Lautsprecher eine Sprachnachricht dudeln lassen? (Bleiben sie wo sie sind, die Polizei ist informiert, eine Videoaufnahme wurde gestartet)

Anse
Beiträge: 1976
Registriert: Mo 12. Aug 2013, 21:30
Wohnort: Bühl

Re: Der AVR-/ARDUINO-Faden

Beitrag von Anse » Do 30. Dez 2021, 00:29

Toddybaer hat geschrieben:
Mi 29. Dez 2021, 10:22
Kann der Arduino bei einem Interrupt dann auch per Telefon nach hause telefonieren? Oder über einen Lautsprecher eine Sprachnachricht dudeln lassen? (Bleiben sie wo sie sind, die Polizei ist informiert, eine Videoaufnahme wurde gestartet)
Also mit dem SIM800 Modul habe ich so Sachen schon gemacht. Ist ein schön günstiges Modul. Allerdings würde ich immer zum stillen Alarm raten. Entweder still oder so, das der Täter so einen Schreck bekommt, dass er nicht mehr rum schnüffelt.

Ich vermute mal Du willst was mit Bewegungsmelder machen. Darum der Hinweis: Fast alle im Handel erhältlichen PIR Sensoren arbeiten eher unzuverlässig neben Funkmodulen. Das einzige Modul, welches gut funktioniert, ist mit dem AM132. Wahrscheinlich weil dort die ganze Elektronik in der Blechbüchse integriert ist. Aber auch dort sollte die Versorgungsspannung gut gefiltert werden.

Benutzeravatar
Toddybaer
Beiträge: 4089
Registriert: Sa 11. Jun 2016, 13:48
Wohnort: Hemmoor

Re: Der AVR-/ARDUINO-Faden

Beitrag von Toddybaer » Do 30. Dez 2021, 13:15

Stiller Alarm ist schlecht, weil bis ich dann da bin, ist auch schon alles zu spät.

Ich dachte an Reedkontakten unter den Kisten. Als Öffner, alle in Reihe. Wenn jemand dann eine Kiste Hochnimmt, gibs Alarm.

Anse
Beiträge: 1976
Registriert: Mo 12. Aug 2013, 21:30
Wohnort: Bühl

Re: Der AVR-/ARDUINO-Faden

Beitrag von Anse » Do 30. Dez 2021, 13:46

Ach so ist das. Dann aber vielleicht keine lächerliche Ansage. Eher eine 110 dB Tröte oder so was in der Art.
Oder die Kiste unter Spannung setzten. Harmlos natürlich aber sehr schmerzhaft.

Online
Benutzeravatar
Bastelbruder
Beiträge: 10329
Registriert: Mi 14. Aug 2013, 18:28
Wohnort: drunt' am Neckar - km142,7

Re: Der AVR-/ARDUINO-Faden

Beitrag von Bastelbruder » Do 30. Dez 2021, 13:53

Da muß ein (international verständliches) Warnschild mit Gummigesicht und Flasche innen an der Tür hängen. Plötzlich Licht aus, Spot an! Und aus einem unsichtbaren Lautsprecher: dit - - - - ditdit - - - ditditdit - - ditditditdit - diiii. Pschschsch ...

ch_ris
Beiträge: 2112
Registriert: Mo 30. Nov 2015, 10:08

Re: Der AVR-/ARDUINO-Faden

Beitrag von ch_ris » So 2. Jan 2022, 07:17

Code: Alles auswählen

((100/3.6)/(1.95))*(43/16)*26
= 995,37037037037037037037
das ist die Ausgabe vom PC calculator.
Auf dem Nano ausgeführt ergibt das glatt 1000, bzw 1000 ergibt 100.

Code: Alles auswählen

return ((((float) a/ ( b* c)) * d)* 3.6);
Alle Werte sind float ausser a, weiteres casten ändert nix.

das mir der Präzision hab ich schon mal gelesen, daher bin ich eh geizig mit float.
hier ist's mir "egal" das ist nur ein Nebenprojekt.

Anderes Problem hab ich mit dem Tiny gehabt.
Der Main Loop ruft eine Methode mit switch, die wiederum eine Methode mit switch aufruft.
Die Methoden setzen bzw. ändern ihren case innerhalb des switch.
Das gelang nicht und ergab eine Todesschleife.
Hab den Fehler im Code gesucht wie blöd, aber nix gefunden.
mit flacherer Verschachtelung ging's dann.
möglicherweise...ich hab den Flash gut ausgenutzt, 7+Kb von 8.
weis nich ob das damit was zu tun hat. Ram ist noch gut vorhanden.

Benutzeravatar
Hightech
Beiträge: 9041
Registriert: So 11. Aug 2013, 18:37

Re: Der AVR-/ARDUINO-Faden

Beitrag von Hightech » So 2. Jan 2022, 09:19

Meine Arduinos sterben wie die Fliegen, wenn ich den Vin benutze. Entweder stirbt nur der Spannungsregler oder der legiert durch und der MC ist auch im Arsch!

Vin besser nicht nicht benutzen für Spannung größer 6V.

Benutzeravatar
Toddybaer
Beiträge: 4089
Registriert: Sa 11. Jun 2016, 13:48
Wohnort: Hemmoor

Re: Der AVR-/ARDUINO-Faden

Beitrag von Toddybaer » So 2. Jan 2022, 10:54

Anse hat geschrieben:
Do 30. Dez 2021, 13:46
Ach so ist das. Dann aber vielleicht keine lächerliche Ansage. Eher eine 110 dB Tröte oder so was in der Art.
Oder die Kiste unter Spannung setzten. Harmlos natürlich aber sehr schmerzhaft.
Schön wäre auch noch eine Drohne die irgendwo aus den Büchen abhebt und in 10m Höhe über den Bienenstand kreist. Vielleicht sogar mit Videokamera

Online
Benutzeravatar
Später Gast
Beiträge: 1337
Registriert: Di 5. Apr 2016, 22:03
Wohnort: Karlsruhe
Kontaktdaten:

Re: Der AVR-/ARDUINO-Faden

Beitrag von Später Gast » So 2. Jan 2022, 14:18

ch_ris hat geschrieben:
So 2. Jan 2022, 07:17
...
das mir der Präzision hab ich schon mal gelesen, daher bin ich eh geizig mit float.
...
Hast du da evtl nen Link zu?
Ich hab da n Projekt mit schneller und genauer Temperaturmessung, (840sps 16bit ballern in ein Array von 30 Werten, wenn der voll ist, wird der Schnitt ausgegeben, macht rauschfreie 28sps) die mit "double" arbeitet, was ja bei arduino wie float behandelt wird. Da hatte ich mal in der seriellen Ausgabe das runterdividieren vergessen und war über das häufige Auftauchen identischer Werte verwundert. Der PID Regler arbeitet auf +-1K genau, also tadellos, aber das Bessere ist der Feind des Guten. ;-)

Online
Benutzeravatar
Später Gast
Beiträge: 1337
Registriert: Di 5. Apr 2016, 22:03
Wohnort: Karlsruhe
Kontaktdaten:

Re: Der AVR-/ARDUINO-Faden

Beitrag von Später Gast » So 2. Jan 2022, 14:25

Hightech hat geschrieben:
So 2. Jan 2022, 09:19
Meine Arduinos sterben wie die Fliegen, wenn ich den Vin benutze. Entweder stirbt nur der Spannungsregler oder der legiert durch und der MC ist auch im Arsch!
Hatte ich bei ner Charge pro minis auch schon. Bei mir klassischer Fall von zu billig gekauft. Bei meinen steigt die Stromaufnahme mit der Eingangsspannung extrem an, was dann zur thermischen Überlastung führt. Resultat: Die Minis liegen wie Blei in der Sortierkiste. 🤷‍♂️

ch_ris
Beiträge: 2112
Registriert: Mo 30. Nov 2015, 10:08

Re: Der AVR-/ARDUINO-Faden

Beitrag von ch_ris » So 2. Jan 2022, 16:41

Später Gast hat geschrieben:
So 2. Jan 2022, 14:18
Hast du da evtl nen Link zu?
nee, goock mal avr float precision.
ich denke das ist ein Fall von isso.

Online
Benutzeravatar
Später Gast
Beiträge: 1337
Registriert: Di 5. Apr 2016, 22:03
Wohnort: Karlsruhe
Kontaktdaten:

Re: Der AVR-/ARDUINO-Faden

Beitrag von Später Gast » So 2. Jan 2022, 23:21

Hmm. Meinst du dashier:
.Floats have only 6-7 decimal digits of precision. That means the total number of digits, not the number to the right of the decimal point. Unlike other platforms, where you can get more precision by using a double (e.g. up to 15 digits), on the Arduino, double is the same size as float.
Das hab ich mir beim Schreiben angeschaut und sollte mir eigentlich keine Probleme machen, die Temperaturen sind nur dreistellig, bleiben drei Nachkommastellen, so genau wirds selbst mit der Schnittbildung eher nicht. Muss ich wohl nochmal meinen Stuhlgang konsultieren, als Möchtegernkoter kommt's schon vor, dass ich suboptimal rechnen lasse... :? :P

Bumbum
Beiträge: 244
Registriert: Mi 22. Apr 2015, 19:04

Re: Der AVR-/ARDUINO-Faden

Beitrag von Bumbum » Mo 3. Jan 2022, 17:32

Hallo,

ich habe heute eine mir unbekannte Zählweise bei einem Gerät entdeckt. Hier mal zwei paar Beispiele:

FF FF 01 --> 80 80 02
FF 80 02 --> 80 81 02

Kennt jemand so etwas und wenn ja: Wie dekodiert man das nach Dezimal?

Viele Grüße
Andreas

Antworten