-
Artikel
Und noch 'ne Nixie-Uhr
die in eckigen Klammern stehenden Werte mit Doppelpunkt als Trennung von/bis bedeuten. Beispiel: PORTC[2:7] bedeutet PORTC2 bis einschließlich PORTC7. Wo welcher Pin genau angeschlossen wird ist dann in der Beschaltung des entsprechenden Moduls oder dem entsprechenden Bauteil zu entnehmen. Im Schaltplan
dessen kommt eine normale IR-Fernbedienung zum Einsatz. Für den Empfang dient das IC TSOP4838 (es geht auch TSOP4836, TSOP1736/8). Auf der Softwareseite habe ich das Projekt IRMP von Frank Mayer genommen. Alle bei mir so herumliegenden Fernbedienungen haben funktioniert. Im Modul habe ich alle IR-Codes
-
Artikel
Fahrradcomputer
Fahrradtachos haben daher einen Meßbereich bis 199 km/h oder darüber. Kurbeldrehzahl. Der Reedkontakt geht auch auf einen Interrupteingang. Temperatur. Der Butterfly hat einen NTC an einem Analogport. Uhrzeit. Die Uhrzeit wird nicht wie beim Butterfly-Demo in Sekunden-, Minuten- und Stundenvariablen sondern
Schließer) ersetzt, betätigt durch einen Magneten 'am Vorderrad (Teil von altem Fahrradcomputer) 'taster2 PORTC.5 wählt die Anzeige aus, langer Tastendruck löscht den jeweiligen Wert ' zu Beginn kann mit dem Poti1 PORTC.0 der Radumfang eingegeben werden. ' 4 K Größe (Demo Version)wird ausgenutzt, es sind keine
-
Artikel
AVR Checkliste
) verdient besondere Beachtung: Wenn sie eingeschaltet ist, ist auf einem bestimmten Port (z. B. PORTC beim ATMega32) die JTAG-Unterstützung aktiviert. Dann funktionieren vier Bits dieses Ports nicht wie gewohnt, da sie für die JTAG-Schnittstelle reserviert werden. In dem zum STK500 gehörenden Entwicklungstool
nur einmal möglich?. Es kann vorkommen, dass ein AVR nur einmal programmiert werden kann, danach geht es nicht mehr (z. B. wird der Typ nicht mehr erkannt). Erst nachdem die Versorgungsspannung getrennt und wieder verbunden wurde, geht es erneut. In diesem Fall ist meistens der Reset-Pin kurzgeschlossen
-
Artikel
LED cube
Schnittkanten sind aber auch dann noch etwas rauh, man sollte sie daher polieren (lassen). Zuhause geht das mit etwas Schleifpapier (600, 1000) und Schleifpaste, alles aus dem Autozubehör. Alle Teile kann man dann zur Haube zusammenkleben. Um die Haube auf die Grundplatte schraubbar zu machen, klebt man
basiert auf einem ATMega32. Ein Schaltplan dafür ist hier zu finden: Schaltplan Controller Dabei ist PORTC für die Ebenen zuständig, PC0 ist unten, PC7 oben. PD0 bzw. Q0 sind die vorderen LEDs bis PD7 hinten. PA0 bzw. U9 ist dann die linke Reihe bis zu PA7 rechts. Teile dafuer: C1, C3: 22p C2: 10p C4: 100u
-
Artikel
Ambilight in Hardware
Modulatoren gehen an die Eingänge der Integratoren. Auswertung Das Herz der Schaltung ist der ATMega48. An PORTC hängen die ADC-Ports. PC0 - U-Integrierer PC1 - V-Integrierer PC2 - Y-Integrierer PC3 - Sample-&-Hold U PC4 - Sample-&-Hold V PC5 - Sample-&-Hold Y Im Kapitel Software ist beschrieben, wie die Ports
.2 der Komparator angeschlossen, welcher ein High-Signal erzeugt, sobald das BAS-Signal unter 0,1V geht. Am Pin PD.2 ist außerdem der Pullup eingebaute Pullup eingeschaltet, um sich einen externen Widerstand zu sparen. Der externe Interrupt ist auf steigende Flanke eingestellt. Dann wird der Timer2 im
-
Artikel
Umstieg von Arduino auf AVR
Ports es gibt hängt vom jeweiligen AVR ab. Der Atmega328p hat zum Beispiel vier Stück: PORTA, PORTB, PORTC, PORTD. Ein ATmega2560 hingegen hat derer elf: PORTA - PORTH und PORTJ - PORTL. Gemeinsam ist allen, dass ein Port maximal 8 Pins enthält (PXN, X=Port-Buchstabe, N=Port-Bit). Genaueres gibt es hier
Arduino-Library Ersatz. Nachdem das Minimal-Programm von oben nun auf dem AVR-Board getestet wurde, geht es weiter. Wir haben uns von Arduino verabschiedet, damit aber auch von allen Arduino-Libraries! Das bedeutet, dass selbst so banale Sachen wie Serial.println() nicht mehr existieren. Diese müssen wir
-
Artikel
Plattformunabhängige Programmierung in C
int : Wenn ein long int 64 Bit breit ist (und ein int schmaler), wie es bei x64-Linux der Fall ist, geht der Aufruf schief. Aus diesem Grund gibt es in Makros mit den passenden printf() -Specifiern für C99-Datentypen. Sie beginnen mit PRI , gefolgt vom Format-Specifier und dem Namen des Datentyps: {| class
davon aus, dass die Funktion uart_getchar() immer ein gültiges Zeichen liefert und keins verloren geht. Ohne Type punning lassen sich die Daten folgendermaßen lesen und ausgeben: Ein 16-Bit-Wert wird jeweils aus zwei Bytes zusammengefügt. Durch das Verschieben um 8 Stellen nach links wird das zuerst
-
Artikel
Raspberry-Webradio
gesetzt werden. Für den ATMega32 bedeutet das: Taktfrequenz auf Quarz und JTAG deaktivieren (damit PORTC verwendet werden kann). Das Entspricht den Fuse-Werten Low-Fuse 0xde und High-Fuse 0xd9) Am ATTiny stellen die Fuses die interne Taktfrequenz auf 8MHz. Die Fuse-Werte sind Low-Fuse 0xe4, High-Fuse
Software oder Hardware) Im Simulator funktioniert das Abspielen von Streams/MP3s nicht Die Firmware geht davon aus, das alle notwendigen Dateien in /home/pi legen. Abhilfe schafft entweder das Anlegen des Ordners /home/pi und hineinkopieren der relevanten Dateien in diesen Ordner oder das Ändern der Pfade
-
Artikel
NanoVM
schnell und effektiv freie Speicherblöcke zusammenzulegen bzw, einzelne Blöcke freizugeben. Dabei geht es in der Regel darum, auch grosse Speichermengen effektiv zu verwalten. Glücklicherweise reicht der auf dem ATmega8 zur Verfügung stehende Codespeicher nicht, um in die Versuchung zu kommen, eine komplexe
bei so einfachen Systemen wie der NanoVM eine Vorstellung davon haben, was auf dem Stack vor sich geht. Wichtig ist vor allem, eine grobe Vorstellung vom Stackbedarf des eigenen Programmes zu haben. Jeder Methodenaufruf in der NanoVM legt zur Zeit drei intern benötigte Werte zu je 16 Bits auf dem Stack
-
Artikel
Pollin Funk-AVR-Evaluationsboard
2x 2 bis 3 minus 1 = 3 bis 5 Output-Pins Fünfte Reduzierungsstufe...: Nur 1 Pin zur Ansteuerung, geht das? Auch das geht, wenn z. B. die Ausgabe seriell zu einem weiteren Mikrocontroller geschickt wird, der dann eine eigene Displaysteuerung besitzt. Zufällig fand sich in meiner Bastelkiste ein BCD-nach
Schleife über den Zähler ms für MS_AKTIV Millisekunden auf. Ist in der if-Abfrage ms gleich MS_AKTIV, geht der Atmega8 geht nach dem Abschalten der LED5 und Anschalten der LED6 an der Stelle sleep_cpu() in den Schlafmodus. Nach der Zeit WDTO_2S wird der zu Programmstart mit WDTO_2S aufgesetzte Watchdog aktiv
-
Artikel
AVR Net-IO Bausatz von Pollin
.2011 2xNET-IO und 2xADD bestellt, 4 verschieden volle Kisten bekommen... WSL16 ist mit Verriegelung, geht nicht aufs Board, Jumper fehlen, Spannungsregler doppelt, Poti Löcher zu klein, lsb3 fehlt, SD-Slot hab ich jetzt 3, 100nF hab ich jetzt 4 übrig ... also immer noch lustig. HW-Stand immer noch 1.0 (
an PORTA7) - PORTA0-3 digitaler Eingang (ein/aus) - PORTA4-6 analoger Eingang (0 - 1023) - LCD an PORTC - Schalten in Abhängigkeit von Temperatur und analogem Wert - (Teilweise) Administration über Weboberfläche - Erweiterung des cmd-Befehlsatzes für telnet/rs232 Gedacht ist der Einsatz des AVR-NET-IO-Bausatzes