-
Artikel
AVR-GCC
Building and Installing avr-gcc Das hier ist die etwas ausführlichere Beschreibung, die mir Johann L. gegeben hat, damit ich meinen Compiler erstellen konnte. Der Post dazu findet sich hier. Zuerst einmal braucht man am besten ein Linux, zum Beispiel ein aktuelles Ubuntu. dort müssen diverse Programme
=0xfe bzw. foo=PINB geschrieben werden. Mit PORTB |= _BV(1) setzt man PORTB.1, mit PORTB &= ~_BV(1) löscht man es wieder, mit PORTB ^= _BV(1) kann man es umschalten (_BV(x) entspricht dabei (1<<x)). Die ersten beiden Varianten erzeugen bei eingeschalteter Optimierung
-
Artikel
AVR-Transistortester
Masse. Nun wird in einer Schleife die Zeit gemessen, die vergeht bis der Gate-Anschluss auf logisch 1 geht. Das passiert bei recht genau 3,6V, wenn der AVR mit stabilen 5V versorgt wird. Das sind 72% der Betriebsspannung. Somit ergibt sich rechnerisch eine Zeitkonstante von 1,28 Tau (1,28 R*C). Da R
Drücken der Taste den Transistor T2 zu schalten. Anstelle der LED können auch zwei normale Dioden (1N4148 o.ä.) in Reihe benutzt werden. Die Widerstände R11 und R12 dienen zum Messen der Batteriespannung. Bei zu geringer Batteriespannung wird dann eine entsprechende Meldung ("Batterie leer") auf dem
-
Artikel
Relais mit Logik ansteuern
, der Kontakt von K1 schließt Taster S1 wird losgelassen, d.h. ein paar Millisekunden hängt der Schaltkontakt in der Luft, der Strom fließt über K1 und K2 weiter and K1 (Selbsthaltung) Taster S1 erreicht Ruheposition, jetzt fließt Strom über die Kontakte K1, S1 und D1 und D2 an die Spulen von K1 und K2, wodurch der Kontakt K2 öffnet. K1 bekommt nun nur noch über K1, S1 und D1 Strom. S1 wird zum 2. Mal gedrückt und hängt sehr kurz in der Luft. Die Selbsthaltung
-
Artikel
GhostCarProjekt
Sektorlänge Sektorwinkel Kurvenlage WegpunktAbs Bezogen auf "weiß" 0 0.00m 0° 0° 0.00m Initialsektor 1 2.00m 0° 0° 2.00m S1 2 1.00m -150° -150° 3.00m S2+S3 3 1.25m +60° -90° 4.25m S4+S5 4 1.50m -90° -180° 5.75m S6+S7 5 2.40m -15° -195° 8.15m S8+S9 6 ... Die weißen Sektoren dienen fortan ausschließlich
wird, wenn der 1ms-Task seine Arbeit erledigt hat. Die Positionsbestimmung wird somit ständig von den zyklischen 1ms-Aufgaben unterbrochen. Es ist mit dem aktuellen Stand der Software so, dass der 1ms-Task maximal 820µs
-
Artikel
AVR
ausschließlich aus dem Programmspeicher ausgeführt werden. Weiterhin sind die Adressräume unabhängig (d.h. beide Speicher besitzen eigene Adressbereiche, die sich wertemäßig überschneiden können). Bei der Programmierung in Assembler und einigen C-Compilern bedeutet dies, dass sich Konstanten aus dem ROM
Controllers recht übersichtlich und birgt wenige Fallstricke. 32 größtenteils gleichwertige Register davon 1–3 16-bit-Zeigerregister (paarweise) ca. 110 Befehle, die meist 1–2 Taktzyklen dauern Taktfrequenz bis 32 MHz Betriebsspannung von 1,8 – 5,5 V Speicher 1–256 kB Flash-ROM 0–4 kB EEPROM 0–16 kB RAM Peripherie
-
Artikel
Plattformunabhängige Programmierung in C
IEEE 754 Fließkommazahlen Eigenschaft float double Gesamtbreite 32 Bit 64 Bit Exponentenbreite 8 Bit 11 Bit Mantissenbreite 23 Bit 52 Bit Dezimalstellen 7 ... 8 15 ... 16 Kleinster Betrag ˜ 5,877·10 -39 ˜ 1,1125·10 -308 Größter Betrag ˜ 3,403·10 38 ˜ 1,798·10 308 Der Typ long double kann ja nach Plattform
der Compiler es unterstützt), dass die Elemente innerhalb der Struktur an Adressen mit Vielfachem 1 ausgerichtet werden, d.h. ohne Padding-Bytes. Das Attribut packed bezieht sich nur auf das Element, das damit annotiert ist. Der Befehl #pragma pack(n) gilt hingegen für alle darauf folgenden Deklarationen
-
Artikel
Audio-DSP mit Spartan 3-FPGA
gelegt. Der zweite Opcode (0x10f00810) rechnet ebenfalls ein Biquad durch. Nur dass hier statt Kanal 1 des Codecs das voher vom SDSP berechnete Ergebnis verwendet werden soll (Kanal 0xf, wenn man so will). Ausgangsregister ist auch hier wieder Kanal 1. Da dieser Biquad unabhängig vom ersten (d.h. mit
- SPI Clock (von uC nach FPGA) 10 LRCLK - LR-Clock (von Master Codec) 11 SPI_DO - SPI Data Out (von FPGA nach uC) 12 SDOUT1 - zum D/A Wandler (Codec) 1 13 IF_SEL - Interface Select (GND = RS232; VCC3.3 = SPI) 14 SDIN1 - vom A/D Wandler (Codec) 1 15 RXD_OUT - RS232 Signal
-
Artikel
ARM-ASM-Tutorial
04040020 ... ... ....... 800013c 08040020 10080140 60e31600 4ff0e020 ... ...@`...O.. 800014c 006910f4 803f1dd0 1a480178 b1f1110f .i...?...H.x.... 800015c 18d21948 0378013b 1cbf0370 12e001f1 ...H.x.;...p.... 800016c 0101b1f1 110f02d2 144a535c 03701148 .........JS\.p.H 800017c 017011f0 01010cbf 4ff48071 4ff08071
: 7003 strbne r3, [r0, #0] 8000168: e012 bne.n 8000190 800016a: f101 0101 add.w r1, r1, #1 800016e: f1b1 0f11 cmp.w r1, #17 8000172: d202 bcs.n 800017a 8000174: 4a14 ldr r2, [pc, #80] ; (80001c8 ) 8000176: 5c53 ldrb r3, [r2, r1] 8000178: 7003 strb r3, [r0, #0] 800017a: 4811 ldr r0,