-
Thread
AVR-Timing-Frage: PORTx so schnell wie Variablenzugriffe?
>A: PORTD auslesen, Bitschieberei in lokaler Variable, Gar nicht schieben, nur abfragen. Bei Einlesen muss es PIND sein. Beide Versionen dürften ansatzweise gleich schnell sein. Denn das wird alles auf Bitbefehle umgesetzt. Das dürfte 3 Takte / Port sein, in Summe 6 + Schleife, macht 8 Takte Umlaufzeit
Betrieb, mal 75400 Baud, wenn der Bootloader des WLAN-Chips aktiviert wird. > Zwei UARTs auf einem Port D? Normale AVRs haben sowas nicht, ist das ein Xmega? Das ist ein normnaler AVR (ATMega1284P)
-
Thread
Onewire + DS18x20 Library
Naj H. schrieb im Beitrag #6075466: > Verständniss Frage: > Wieso wird erst der "ONEWIRE_PORT" auf "low" gezogen und dann erst als > Ausgang gesetzt? Weil das so richtig ist ;-) > Müsste das nicht anders herum sein? Nein. Durch die Reihenfolge [c] ONEWIRE_PORT &= ~ONEWIRE_MASK
auf einem arduino uno getestet hatte, konnte ich die Temperatur des DS18S20 sofort ohne Fehler einlesen. Ich hatte lediglich den Port PB6 auf PB0 geändert. Anschliessend habe ich die Datei "onewire_demo.ino" so abgeändert, dass man die jetzt auch mit dem gcc für jeden anderen Controller ohne die
-
Thread
Port Manipulation aus Array, mit auslassen eines Bit
[c] PortB = Array[Index] & 0xfe; [/c]
[c] PortB = (PortB & 1) | Array[Index] & 0xfe; [/c]
-
Thread
Delay mit Timer
[[AVR-GCC-Tutorial/Die_Timer_und_Zähler_des_AVR]]
konfiguriert werden > > und wie muss den aufrufen im Programm. Timmo H. schrieb im Beitrag #4423262: > AVR-GCC-Tutorial/Die Timer und Zähler des AVR
-
Thread
Visual Studio C#: Probleme mit empfangen Zeichen
e) string port = toolStripComboBox_port.Text; int baud = 38400; try { /* port, baud, etc auslesen */ serialPort.DataReceived += new SerialDataReceivedEventHandler(serialPort_DataReceived); serialPort.Open(); } catch { buttonClose_ButtonClick(this, null); } } private
-
Thread
Per Php zum Rs232-Lan Wandler
(E_ALL); echo "<h2>TCP/IP-Verbindung</h2>\n"; /* Den Port für den WWW-Dienst ermitteln. */ $service_port = 20108; /* Die IP-Adresse des Zielrechners ermitteln. */ $address = gethostbyname('192.168.1.7'); /* Einen TCP/IP-Socket erzeugen. */ $socket
socket_last_error()) . "\n"; } else { echo "OK.\n"; } echo "Versuche, zu '$address' auf Port '$service_port' zu verbinden ..."; $result = socket_connect($socket, '192.168.1.7', 20108); if ($result === false) { echo "socket_connect() fehlgeschlagen.\nGrund: ($result) " . socket_strerror
-
Thread
geschachtelte if Abfrage auf AVR Pins
Hi, vielleicht zum debuggen die Ports separieren und einzeln die PINx werte zur Fehlersuche binaer/hex ausgeben. Dann bieten sich zur beseren Lesbarkeit auch noch Masken an. //hufnala
Ansonsten gebe ich dir zu 100% Recht, es ist übersichtlicher und man läuft nicht in die Gefahr, dass der Port zwischen den einzenlen Vergleichen den Zustand wechselt. Je nach Anwendung ist das aber auch egal.
-
Thread
WordClock mit WS2812
Crystal-Freq 26M SPI Speed 40MHz SPI Mode DIO FLASH SIZE 4Mbit SPI AutoSet COM PORT - Dein COM Port Baudrate 115200 einstellen.
meldet sich: UDP aktiviert ESP8266 now up # ESP8266 wurde erkannt (- local port: 2421) # ESP8266 meldet sich: horcht auf Port 2421 (- setup server UDP) # ESP8266 meldet sich: UDP server aktiviert (- local port: 2424) # ESP8266 meldet sich
-
Thread
Wichtige Anfrage
Sie einen Struktogramm für diese Aufgabe >c) Schreiben Sie einen Prorgamm für den 80C517A ADC einlesen, in Volumen umrechnen und auf dem Terminal (UART) oder LCD ausgeben. Siehe auch [[Festkommaarithmetik]]. >Ich habe wirklich absolut kein Schimmer wie ich die a)-c) lösen soll. Dann hast du
IO-Ports, Timer, UART, ADC etx. Diese haben spezielle Namen und sitzen logisch nicht in der CPU sindern im Speicher. https://www.mikrocontroller.net/articles/Speicher#Register > Data Pointer wildfremd
-
Thread
Arduino due clone brauchbar?
avr schrieb im Beitrag #4399480: > Doch es gibt unwirksame Kondensatoren. Und zwar dann wenn sie nicht mehr > hochfrequent abblocken. Jedes Stück Leiterbahn ist eine Spule. Jedes Stuck ? Warum dann
Schaltregler und dem Atrribut "industrial grade" entworfen: https://www.olimex.com/Products/Duino/AVR/OLIMEXINO-328/open-source-hardware
-
Thread
OSD programm mit einem ATmega32u4
*************************************/ #include <stdio.h> // Einbinden der Standard I/O Ports #include <avr/io.h> //Einbinden Input und Outputs des ATmegas #include <util/delay.h> // Einbinden Wartezeit /*** Port Bits **************************************************************
*************************************/ #include <stdio.h> // Einbinden der Standard I/O Ports #include <avr/io.h> //Einbinden Input und Outputs des ATmegas #include <util/delay.h> // Einbinden Wartezeit #include <stdlib.h> //Bibliothek für float to string #include <stdint.h
-
Thread
AVR - IDE Festplatte liefert immer Fehler beim lesen
von der Platte. Ich versuche mal die entsprechende Routine aus wdc_drv_pata.c zusammenzufassen: - AVR-Port auf Output stellen - Setzen PATA_RW_SECTOR_COUNT_REGISTER Datentransfer: Anzahl zu lesende Blöcke - Setzen PATA_RW_SECTOR_NUMBER_REGISTER Datentransfer: niedrigen 8 bit der niedrigen 16 bit
PATA_W_COMMAND_REGISTER Datentransfer: 0x20 Wie läuft der eigentliche Datentransfer ab: - Daten an den Port anlegen, - /DIOW aktiv setzen - 2 * nop() - /DIOW deaktivieren Danach werden dann die eigentlichen Nutzdaten gelesen: - AVR-Port auf Input stellen - Schleifeneinstieg: - warten bis BSY low
-
Thread
Define Makros in C
mec, Peter, Jörg und KarlHeinz lassen IMMERZU eines außen vor, nämlich daß es sich bai all diesen PortB Pin2 Spielchen entweder um einen theoretischen Port eines theoretischen µC handelt oder eben immer wieder nur um den begrenzten Horizont eines AVR. Auf allen anderen Architekturen sehen die Port
dreckige Trick, wie es doch geht: [c] #include <avr/io.h> #define IRMP_PORT_PIN C6 #define STRINGIFY(s) TO_STRING(s) #define TO_STRING(s) #s #define IRMP_PORT (*(&PORTB + 3 * (STRINGIFY(IRMP_PORT_PIN)
-
Thread
RF01 und RF02 433 MHz Funkmodul
Ich habe nur kurz in Deinen Source geschaut: holst Du die Betriebsspannung für den RFM aus einen AVR-Port? Qwnn ja, was soll das? Die RFM können etliche Milliampere Impulse erzeugen und haben kein Verständnis für instabile Betriebsspannungen. Zum Stromsparen haben die einen PowerDown-Mode, da reicht
Michael U. schrieb im Beitrag #4386986: > holst Du die > Betriebsspannung für den RFM aus einen AVR-Port? Qwnn ja, was soll das? ...jetzt direkt vom Labornetzteil. Bringt nichts. Sendet immer noch Schrott. c-hater schrieb im Beitrag #4387046: > Nein, das tust du wahrscheinlich nicht. Was du
-
Thread
attiny2313 und "pin change interrupt"
register im DB durchgegangen ... vielleicht kann hier mal jemand drüber schauen: [c] #include <avr/io.h> #include <avr/interrupt.h> #include <util/delay.h> #define SERVO_DDR DDRB #define SERVO_PORT PORTB #define SERVO_PIN PINB #define SERVO PB0 #define LED_DDR DDRB #define LED_PORT PORTB #define LED PB1 ISR(INT0_vect) { LED_PORT ^= (1<<LED); } int main(void) { LED_DDR |= (1<<LED); // Set as output LED_PORT |= (1<<LED); // Set high SERVO_PORT
-
Thread
Aquariumsteuerung - LED über ein Taster Ein und Aus
------------------------------------------------------------------------ ledon: ; Taster 1 einlesen ;sbi PORTD,5 in r17, PIND ; PORTD einlesen und in r17 ablegen sbrs r17, 2 ; Überspringe .... rcall sw1 ret sw1: ; hier wird nun die LED eingeschaltet sbi PORTD
; Ausgang setzen ldi r18, 0x01 ; Bit für LEDON setzen ret ledoff: ; Taster 2 einlesen in r17, PIND ; PORTD einlesen und in r17 ablegen sbrs r17, 3 ; Überspringe nächsten Befehl wenn Bit 2 vom PORTD gesetzt rcall sw2 ret sw2: ; hier wird nun die LED eingeschaltet
-
Thread
myAVR Board light welcher Programmer ist verbaut? für Linux
anderen Programmer, aber nie eine Erklärung. Mit try and error kam folgendes raus: avr109 avr910 avr911 avrisp avrisp2 avrispv2 avrispv2 avrispmkII stk500 stk500v1 stk500v2 stk500pp stk500hvsp "timeout" oder "programmer is not responding", egal welchen ich nehme Wegen dem timout habe
Tx und Rx sind verbunden mit PD0 und PD1 des µC, was laut Referenzkarte die UART ist. "SPI-Bus AVR-ISP" ist auf den Pins B2 bis B5 und enden an den universellen Ports und an nicht bestückten Löchern mit Aufschrift "ISP". Das ist mir erst jetzt so richtig aufgefallen, wo ich weiß was der Bootloader
-
Thread
Assembler wieder auf dem Weg nach vorn Gesperrt
Sorry. Der steckt schon in einem gekauften XportPro. > Das schmälert den Nutzen des Traumgespanns ASM/AVR aber in keiner Weise > ;-) Hi Moby, die X-Ports sind schon ganz nett, aber relativ teuer. So ein Teil kostet um die 70 Euro. Wäre es da nicht sinnvoller einfach einen günstigen 32bitter mit integriertem
Ausnahme: > Z8, bei dem gab es keinen Unterschied zwischen RAM und Registern). Die Zugriffspfade (Ports) machen den Hauptunterschied im Aufwand aus. Auf RAM kann immer nur einer zugreifen, auf Register meist mehrere. Ein AVR kann pro Takt 2 Register lesen und eines schreiben. Aber pro Takt kann er nur
-
Thread
Warum keine Hochvolt-Mikrokontroller?
eigentlich genauso leicht erhältlich. Und mit zwei oder drei davon kann man beispielsweise einen AVR über den kompletten Spannungsbereich dieser Zellen beheizen.
Im Schlaf möchte der AVR aber auch versorgt werden, sonst ist er tot.
-
Thread
Layout für MCS51 Experimentierboard
Habe in der Nacht noch versucht, unter Basic, den Port 1 der Schaltung anzusprechen. Im Handbuch fand ich dafür die Bezeichnung "PORT1". Also mit einem Draht Pins auf 0 gezogen und mit "PRINT PORT1" die Bitzustände gelesen und im Terminal angezeigt - funktioniert
Hallo Matthias, einlesen vom Port 1 habe ich schon gemacht, geht einwandfrei. Nur einen Wert ausgeben funktioniert nicht. An den Pullups kann es nicht liegen, denn die Ports 1, 2 und 3 haben integrierte Widerstände (10k-47k
-
Thread
Frage zur Beschaltung eines PCF 8574T
Den INT brauchst du wenn du Eingänge einlesen möchtest. Für reine Ausgabe brauchst du den nicht
klitzekleine Haken ist die etwas höhere Komplexität der Chips. Die haben mehrere Register (pro 8-Bit Port ein Datenregister zum lesen, eines zum Schreiben, ein Datenrichtungsregister, und ggf noch ein Interrupt-Register; ganz ähnlich wie ein AVR DDR, PORT und PIN Register hat). Du musst die Pins erstmal
-
Thread
Fernseher per Netzwerk ausschalten
macht es nicht besser, framework vermeide ich auch wo ich es kann, das hat mir auch den Umstieg auf AVR Studio 6 vermiesst und ich ging reuemütig zurück zu 4.
aus! > > per putty an IP sollte doch klappen. ich weiss ja nicht mal welche Checkboxen und Ports ich wählen soll, habe IMHO alle probiert, scheint nicht ohne TV Patch zu gehen.
-
Thread
Hall Sensor an Tachowelle auslesen
habe mich schon mit µC AT 89C2051 befasst und auch eigene Lösungen entwickelt. Da wurden aber immer Ports eingelesen oder beobachtet und entsprechenfde Funktionen daraus abgeleitet. Der Hall Sensor wird mit Spannung versorgt und die Signalleitung gebe ich auf einen Port. Nur mit welchen Befehlen ich das Hall Signal einlese und verarbeite ist mir unklar. Gruß Wolfgang
-
Thread
Basic für 80C31
Oh, da muß ich mich selber mal schlau machen. Probiere bitte 10 DO 20 PORT1 = PORT1.XOR.1 30 WHILE 1 Damit sollte das untere Bit von PORT1 wackeln.
an 60 IF TIME < 0.1 THEN GOTO 60 70 GOSUB 1050 80 NEXT I 90 GOTO 20 990 REM Einschalten des Ports I 1000 P = 2 ** I 1010 PORT = PORT .OR. P 1020 PORTX = PORT 1030 RETURN 1040 REM Ausschalten des Ports I 1050 P = 2 ** I 1060 PORT = PORT .AND. (65535-P) 1070 PORTX = PORT 1080 RETURN
-
Thread
Serielle Daten in Tastaturanschläge verwandeln
WinWord. Oder fertiges Programm: ftp://support-datalogic.de/ADC/HHS/06.Verschiedenes/Windows_COM-Port_KBD_Umleitung-v1.3g.pdf
einfach vom Tastatur-MC 8051 den UART-Mode 0 genommen. Ich sehe auch kein Problem, mit 2 IOs des AVR das PS/2 Protokoll nachzubilden.
-
Thread
Grundlegende Architekturüberlegung - Bitte um Hilfe
Räumen "dumme" Datensammler (sorry, ich weiss nicht wie ich die Einheiten nennen soll) sitzen (z.B. AVR's) die Zentral über ein System, z.B. RasPi oder Linux-PC, mit Logik und "Intelligenz" komplettiert werden. Warum - um die Logik an einer stelle zu haben und dort Änderungen einmalig einspielen zu können
ist, Danke für den Hinweis. Werde mich gerade in Hinsicht auf den Energiebedarf nochmal genauer einlesen in die unterschiedlichen Bussysteme. Gibt es hierfür irgendwo eine "Übersicht" - quasi so in der Art: System / erforderliche Peripherie / Quellcode / Stabilität AVR + CAN-Bus / CAN CHip XY /
-
Thread
AVR Assembler Tut: Was mache ich falsch?
in r16, PIND ; an Port D anliegende Werte (Taster) nach r16 einlesen out PORTB, r16 ; Inhalt von r16 an Port B ausgeben rjmp loop [/avrasm]
in r16, PIND ; an Port D anliegende Werte (Taster) nach r16 einlesen out PORTB, r16 ; Inhalt von r16 an Port B ausgeben rjmp loop [/avrasm]
-
Thread
Problem MCP23S17 und avr-gcc
_ #define SPI_H_ #include <avr/io.h> #define SPI_DDR DDRA #define SPI_PORT PORTA #define SPI_SCK 4 #define SPI_MISO 5 #define SPI_MOSI 6 #define SPI_SS 7 void spi_init(void); uint8_t spi_transfer(uint8_t
MCP_GPIOA, i+4, 1); else mcp_write_bit(0, MCP_GPIOA, i+4, 0); } // Gesamten Port einlesen, Port aendern und einmal senden (besser)! // 30µs uint8_t recData = mcp_read_byte(0, MCP_GPIOA); recData = recData | (recData<<4); mcp_write_byte(0, MCP_GPIOA, recData);
-
Thread
Space Age 2 der 32Bit MIPS Rechner in TTL
nachfolgenden Semestern, aber mit anderen Studententeams. Alles weitere hier: http://www.fritzler-avr.de/spaceage2/
dann fertig. Sowie der Monitor mit Ansteuerung und HV Teil. Bilder hier: http://www.fritzler-avr.de/spaceage2/gallery/main.php?cmd=album&var1=Zusatzger%E4te/ Doku hier: http://www.fritzler-avr.de/spaceage2/down_doku.htm
-
Thread
Abtastung von Musik mit variabler Frequenz
Musikstücke ausreichend. @ DJShadowman: Gibt es einen Forumsbeitrag zu dem Thema, damit ich mich einlesen kann? Gruß
Damit ist eine Verstellung der Frequenz in 256 Schritten möglich. Außerdem habe nun auch noch ein AVR-LCD angeschlossen, um die momentane Abtastfrequenz auszugeben. Die Musik-Wandelergebnisse(8Bit) gebe ich an einem PORT aus. Die DA-Wandlung erfolgt übrigens nun nicht mehr mittels Baustein, sondern
-
Artikel
Diskussion:Frequenzumrichter mit Raumzeigermodulation
Timer sind darauf abgestellt. Der Sollwert wird im Mega32 am Analogeingang 2 eingelesen: // ****** Einlesen Sollwert ********************************* ADMUX=0x02; // PortA2 = ADC2 = Analog Eingang ADCSRA |= _BV(6); // single conversion mode ein while(ADCSRA & (1<<6)); // warten bis Konvertierung abgeschlosen
Speicherscope. Gruß Julian Hallo Julian, Achtung Fehlerteufel in: void initial(void) DDRB = 0x2b; // PortB2 ist ein Eingang der Rest sind Ausgänge Achtung: Hier stand fälschlicherweise DDRB = 0x1b geändert am 14.03.2010 Das könnte die Erklärung für deinen seltsamen Motorlauf sein. Axel Danke nochmal für
-
Thread
Vollständiges SPI Beispiel AVR-GCC?
++index == 8) { index = 0; uart_puts("___________\r\n"); } SPI_PORT &= (1<<SPI_SS); _delay_ms(2000); } } [/c] [c] /*SLAVE*/ #include <avr/io.h> #include <util/delay.h> #include "spi/spi.h" #include <avr/interrupt.h> int main(void) { DDRA
SPI_PORT &= (1<<SPI_SS); --> SPI_PORT &= ~(1<<SPI_SS); Gruß Rene
-
Thread
AVR Ports und Pins Verständnisfrage
Hallo ich habe eine Anfängerfrage bzgl. PORTS und PINS bei AVR Controllern. Soweit ich das verstehe haben ja PORTB, PORTC und PORTD jeweils mehrere Pins. Wenn ich jetzt also auf einem bestimmten I/O Ausgang eine digitale 1 ausgeben will muss ich
setzt einen Ausgangs-Port/Pin oder wenn es ein Eingang ist aktiviert er den Pullup. Das Pin-Register ist zum einlesen eines Eingangs gedacht. Wenn es Pin7 Hardwäremäßig nicht gibt passiert außen eben nichts.
-
Thread
Entprellen mit Sam µC
neueren (SAMD und Verwandte) gibt es PIOA eigentlich gar nicht direkt, sondern dort müsste man PORT->Group[0].IN.bit.IN einlesen. (Zuweilen habe ich aber auch schon #defines gesehen, die PORT->Group[0] als PIOA abkürzen.) Edit: in deinem Beispiel liegt jetzt doch alles an PIOA, oder fehlt
In AVR weise ich einfach über dem Port den Pin zu den ich High setzen möchte bzw das Bit wieder löschen möchte... [c] if( get_key_short( 1<<KEY_unten)) { LED_PORT ^= 1<<LED0; countdown = 500
-
Thread
1-wire mit Atmega8
das Timing recht kritisch. Vielleicht liest(!) und probierst Du doch erstmal die Application note AVR318 von Atmel [1]. Mir hat die damals (tm) ganz gut geholfen, auch wenn ich das Protokoll nicht auf einem Atmel-Chip implementiert habe. Jens [1] Dallas 1-Wire master on tinyAVR and megaAVR devices
zu schalten damit du mit den >> Zuständen klar kommst. >> http://www.mikrocontroller.net/articles/AVR-GCC-Tutorial > > ;-) habe ich vorher, auch mit Taster. Das LCD-Display funktioniert ja auch ... da musste ich aber keinen PIN einlesen sondern nur schreiben ;)
-
Thread
Welche Relais und Controller zum Schalten von USB?
noch von dem nano abraten, dadurch, dass der keinen FTDI (oder vergleichbar) Chip hat sondern der AVR direkt USB macht ist der Aufwand mit dem was auf die Beine zu stellen ein Stück höher als mit einem micro (der ist einfach ftdi + mega328).
63698188/Categories/USB_Umschalter Die Umschalter funtkionieren recht gut. Die Spannung vom USB Port wird mit kleinen Finder Relais geschaltet. Dei Datenleitungen werden mit CY7C63813SXC geschaltet (pdf im Anhang).
-
Thread
Wie Assembler ISR in C integrieren ?
[c] .org OC1Aaddr ; c-haters optimierte Routine in isr_SREG,SREG in isr_tmp,outPORT subi isr_tmp,incrmnt ; synchr. pos. Flanke out outPORT,isr_tmp out SREG,isr_SREG reti [/c]
'push'/ 'pop' und das Sichern/ Wiederherstellen von SREG in der ISR einfach weg. Ich würde das Einlesen des Ports auch noch weglassen. (Der ist bei dieser Verwendung sowieso zu nichts anderem zu gebrauchen.) Spart 11Zyklen. [c] ISR(TIMER1_COMPA_vect, ISR_NAKED) { asm volatile( "inc r8
-
Thread
1 bit Wert PB2 direkt übernehmen (Assembler)
beeinflussen. http://www.atmel.com/images/Atmel-0856-AVR-Instruction-Set-Manual.pdf Wenn das in data zu beeinflussende Bit an der selben Position sitzt, wie in Port, dann ist diese Befehlsfolge [avrasm] ANDI data,(0xFF-0x04) SBIC PINB,2 ORI data,
nicht ziemlich ungenau? Wenn man dann, ohne weitere Takt-Synchronisierung, frei laufend 8 Datenbits einlesen will... ?
-
Thread
FPGA für Zeitmessung
vorhandenen Eingänge werden in zwei Taktzyklen abgearbeitet. Ich habe Erfahrung in der Programmierung von AVR Controllern. Progmmiererfahrung in C und der Arduino IDE. Von FPGAs habe ich keine Ahnung. USB ist eine Möglichkeit, auch Ethernet wäre denkbar.
Controllern hast, die über das Zusammenkopieren von Beispielen hinausgehen. Anliegende Daten einlesen, mit dem Sollwert vergleichen und bei Abweichung nacheinander an einen SPI-IP-Core senden, der eine FTDI-Chip ansteuert. Die Schwierigkeit sehe ich nur darin zu überlegen, wie man die Daten senden
-
Thread
LM35 mit AD-Wandler
, ich habe ein Problem mit dem AD-Wandler. Ich möchte nämlich die Temperatur mit dem LM35 einlesen. Ich verwände einen Arduino uno, programmiere aber in C. Als erstens habe ich mein Programm geschrieben und den LM angeschlossen. einfach + auf + und GND auf GND, den V-out habe ich direkt auf
habe jezt mal einen 200 Ohm am ausgang in reihe geschalten und nochmal geguckt ob ich irgendwo den Port verwände wird aber auser in der LCD rutine aber da habe ich blos die lezten zwei Pins angesteuert und ich nehme beim AD den ersten Pin also sollte das ja kein problem sein oder?? und bei meinem
-
Thread
Hat Atmel Studio einen Vorteil gegenüber der arduino IDE?
beschäftigen. Ich finde Atmel Studio hauptsächlich ätzend langsam. Aber das Problem habe ich mit avr gcc unter Linux zum Glück nicht mehr.
Der Arduino-Mischmasch nennt sich C++ und wird von einem AVR-GCC übersetzt. Auffälligster Schwachpunkt der IDE ist der Editor. Ich benutz(t)e das Teil zur Inbetriebnahme von Eclipse-AVR-Plugin auf Linux mit China-Arduinos. So nach dem Motto: wenn die HW mit