Mit der schon vorher besprochenen Funktion lassen sich hohe Rechteck Frequenzen erreichen.
while(k==10) { PORTB=B00111100; // 15 asm("nop\n nop\n"); PORTB=B00000000; // 0 }
Mit der schon vorher besprochenen Funktion lassen sich hohe Rechteck Frequenzen erreichen.
while(k==10) { PORTB=B00111100; // 15 asm("nop\n nop\n"); PORTB=B00000000; // 0 }
Nachdem ich nun die Obergrenze des Rechtecksignals getestet habe, will ich mir jetzt mal die unteren Frequenzen ansehen. Da bieten sich die delay(ms) und delayMicroseconds(us) Funktionen an.
Ein Prozessortakt dauert bei 16 MHz Takt 62,5 Nano Sekunden. Meine while schleife mit den nops und Portausgaben benötigt 6 Takte. delayMicroseconds() lässt sich in 1 Mikrosekunden Stufen einstellen bis hin zu 16383, was hier einer Frequenz von ca. 31 Hz entspricht. Weiterlesen
Mit dem DA Wandler soll ein Rechtecksignal auf den Pins 10-13 ausgegeben werden.
Die schnelle und direkte Ausgabe erfolgt indem die Bits des PORT B direkt geschrieben werden. Hier werden die Bits 2 (MSB) bis 5 (LSB) verwendet. Weiterlesen
Im Arduino Uno ist kein DA Wandler enthalten. Der lässt sich mit einem R-2R Netzwerk ergänzen. Genug digitale Ausgänge sind vorhanden. Hier wird ein 4-Bit DAC aufgebaut. Weiterlesen
Zum Frequenzzähler wird ein LCD Display 16 x 2 hinzugefügt basierend auf den beiden Projekten:
– Frequenzzähler Teil 1 & Teil 2
– LCD Display Teil 1 & Teil 2 Weiterlesen
Eine Long Integer Zahl mit 8 Byte soll im Arduino EEPROM abgelegt und dann wieder ausgelesen werden.
Long Integer in das EEPROM schreiben Weiterlesen
Eine Integer Zahl soll im Arduino EEPROM abgelegt und wieder ausgelesen werden.
Der EEPROM.write Befehl schreibt jeweils ein Byte an die Adresse.
Integer sind aber 2 Byte, sodass die Zahl zerlegt wird und beide Teile einzeln an zwei aufeinander folgende Adressen geschrieben werden. Weiterlesen
Mit den 3 vorherigen Artikeln über den BMP085, der Checksum Berechnung und der Umwandlung von Float in String kann ich nun die Temperatur und Luftdruck Daten als NMEA 0183 Datensatz mit 4800 Baud ausgeben lassen. Weiterlesen
Um eine Float ( Fliesskomma) Zahl in einen String umzuwandeln kann die Funktion verwendet werden. Weiterlesen
Am Ende des NMEA 0183 Datensatzes steht immer eine 2-stellige Checksumme *hh.
Wird ein neuer Datensatz (String) geschrieben ist es notwendig die Checksum neu zu berechnen. Hier zum Beispiel der RMC Datensatz mit der Checkumme *hh am Ende Weiterlesen