-
Thread
Kennfeld ablegen? Intern o. extern?
von Atmel doch mal das InstructionSet (also die reine Befehlserklärung - nicht das Datenblatt vom µC)
EEProm lesen langsam? Dauert 2 Taktzyklen. Du mußt allerdings erst die Adresse schreiben dann "lesen Bit" setzen und wenn das Bit auf 0 ist Daten lesen bei 125ns Takt schaffe ich das in 750 ns. Gruß Uwe
-
Thread
SPI emulieren
SPI-Master ist überhaupt kein Problem: [c] #include <avr\io.h> #include <inttypes.h> struct bits { uint8_t b0:1; uint8_t b1:1; uint8_t b2:1; uint8_t b3:1; uint8_t b4:1; uint8_t b5:1; uint8_t b6:1; uint8_t b7:
mögliche Repräsentation eines Byte. Das einfachste, um aus dem Ausgangsarray ein Byte im Sinne des C-Datentyps char zu machen, wäre nacheinander das jeweils höherwertige Bit aus dem Array (also index von 0 bis 7 laufen lassen) zu einem auf 0 vorinitialisierten char dazu zu addieren und achließend das
-
Thread
Was ist bzw. war Atmel QTouch?
ausgereizt ist, da ist noch viel reserve zur Empfindlichkeitserhöhung. QT-cycle.png: zyklische Abfrage alle 20 ms QT-pulse_chain.png: eine komplette Abfrage, man sieht eine Kette von 16 Impulsen QT-detail.png: einzelne Abfrage (Touch-Button berührt), offenbar wird die Touch-Elektrode erst auf Vcc
alles in der TinyTouchlib implementiert: https://github.com/cpldcpu/TinyTouchLib/blob/7eb7866e6f166f9c9668dcffd517c061258f035c/TinyTouchLib.c#L79
-
Thread
USB CDC von Stefan Frings und WS
UsbGetChar(void) [/c] 2. Dein UsbTxReady() check ist redundant, da er in [c] /* sendet ein Zeichen (d.h. schreibt es in den Tx-Buffer) */ char UsbCharOut(char c) [/c] sowieso passiert und möglicherweise das UsbGetChar
der USB-ISR, wo logEpBulkOut mit logEpBulkIn verwechselt wurde. Hier die Änderungen an der usb.c: https://github.com/Erlkoenig90/WSusb/commit/5bb8175989ea8c7576d8fb177c68260173a5924c#diff-3bf4bca9d530fc38765d8c9f1c0ae7c8 Bernd, kannst du prüfen ob es damit bei dir funktioniert?
-
Thread
iMX6 Board neu entwickeln
irgendwo Bugs drin sind. Mach Dir also ne Liste was da für Dich wichtig ist (z.b. USB-Host, UART, I2C, PWM,...) und teste Punkt für Punkt ob das funktioniert. Hier musst Du Dir auch Gedanken über die Alternate Functions der einzelnen Pins machen und wohin Du welche Pins routest. Daher würde ich mich
kann man halt keine Kundenanforderungen mit bezahlbarem Aufwand umsetzen. Alleine schon "eben mal in C++" ein PDF generieren oder eine HTTP-Abfrage machen wird da schon schnell sehr spannend (ohne Qt).
-
Thread
Brauche mal Hilfe bei Mikrobasic programm
18f4520 zur Datenausgabe an die Relaissteuerung einer R&S 'Eichleitung mit 9 bistabilen Relais an Bit 0-7 port D und Bit 1 Port E ' An Port C liegt ein 3x4 Tastenfeld 'An Port B ist das LCD-Display angeschlossen dim taste, ausgabe, dummi, wert, summe, kp, cnt as byte txt as char[5] ' Variablen
zusammengehören. PS: ist dir aufgefallen, dass du im then an Port D zuweist, beim else aber an Port C? Ist aber hinfällig, da es anscheinend bei diesem Basic ja eine Möglichkeit gibt, wie man sich beim DIM einzelne Bits am Port mit Namen versehen kann und dann in weiteren Code nur noch mit diesem Namen
-
Thread
pic18f2520 alternativer avr
sondern ganz normaler Alltag zigtausender die sich professionell oder auch nur halbprofessionell mit µC Programmierung beschäftigen... Und JA- ich gebe zu wenn man oft wechselt bleibt nicht immer die Zeit sich bei jedem einzelnen µC in alle Feinheiten einzuarbeiten. Das wichtigste wird sich angesehen
Zeit > sich bei jedem einzelnen µC in alle Feinheiten einzuarbeiten. Ein Problem der Moderne. Carsten Sch. schrieb im Beitrag #2097405: > Wenn ein Ing. der von seinem Arbeitgeber den Auftrag bekommt für einen > µC in einer
-
Thread
goto verpönt - was dann nehmen?
Peter II schrieb im Beitrag #4498950: > goto bei C (nicht C++) zur Fehlerbehandlung ist üblich und sinnvoll. Definitiv, hab ich auch gestern erst so für eine I2C Routine so genutzt. Da wurde zu erst ein Konfigurationsbyte ausgelesen, ein paar Bits
MCUA schrieb im Beitrag #4545622: >> Und wenn ich die Schritte der Sequenz in einzelne Funktionen aufteile.. > einzelne Funktionen kosten in der Regel jedoch viel mehr CPU-Rechenzeit Das mag vielleicht noch zutreffen, wenn man einen kleinen 8-Bit Mikrocontroller mit wenigen Registern
-
Thread
MSP430 Gleitkommazahl in Flash speichern
// Clear WRT bit FCTL3 = FWKEY + LOCK; // Set LOCK bit } [/c]
bit FCTL3 = FWKEY + LOCK; // Set LOCK bit } [/c] Übrigens - was sind eigentlich Compilerdirektiven?
-
Thread
Frequenzanzeige Spektrumanalyzer
: >> ( wenn auch mit nicht so hohen Anforderungen ). > > Dann achte darauf, daß er auch mit 64-Bit 'double'-Werten rechnet. > Viel Erfolg! werde ich ihm sagen. Er programmiert nur in Bascom. Assembler und C kann er nicht. Ralph Berres
jetzt nochmal berichten, wie das Projekt ausgegangen ist. Nach dem ich vor ein paar Wochen die Abfrage der Frequenzeinstellpotis grob und fein mit einen 12 Bit ADC realisiert hatte, wurde dann ein Unterprogramm entwickelt, welches beim drehen von einer der beiden Frequenzpotis eine Frequenz anzeigt
-
Thread
Fragen zu PWM
Registers temp mit der (Hexadezimal-) Zahl 10h (bitweise) ODER-verknüpft wird. Mit anderen Worten: Das Bit Nummer 4 in temp wird gesetzt (egal welchen Wert es vorher hatte), während alle anderen Bits im Register unverändert bleiben.
leuchtet eine LED genau dann, wenn der zugehörige Port Pin eine 0 aufweist. Also beginnt die PWM Abfrage damit, dass in einem Register einfach mal alle Bits (bis auf die obersten 2, die sind nicht benutzt) auf 0 gesetzt werden. Würde man diesen Registerinhalt so auf den Port ausgeben, dann würden
-
Thread
Windows 8 potthäßlich
wir einig. Die Struktur ist sinnvoll. Was nicht sinnvoll ist, sind sprachabhängige Namen für die einzelnen Zweige. "Eigene Dateien" heißt unter *nix traditionell ~ und wird von der Shell zum aktuellen Pfad expandiert - und das überall auf der Welt. Der erst relativ neue Ordner c:\users (oder so
schrieb im Beitrag #2906488: > Was nicht sinnvoll ist, > sind sprachabhängige Namen für die einzelnen Zweige. Siehe da, genau das wurde unter Vista abgeschafft. Uhu Uhuhu schrieb im Beitrag #2906488: > Der erst relativ neue Ordner c:\users (oder so ähnlich) ab Vista heißt > unter *nix
-
Thread
WizNet W5500 Probs als Webserver
jeweilige TX-Pointerwert (Der WR-Pointer) zufällig. Die Main-Schleife sieht wie folgt aus... [c] while (1) { WDT->WDT_CR = 0xA5000001; //REset Watchdog TFT_csabs(7,1); printf("%02X SR %02X SN %02X", server_client_available(), client_status(),client_get_sock()); [/c] Der
...Ergänzung: Beim W5100 habe ich die Zeichen einzeln ausgelesen und das beim W5500 auch so übernommen. Dies kostet Zeit..
-
Thread
Stoppuhr-Anfängerprojekt
/muß ich dann ja auch noch rechnen. Was wird alles schief gehen? Ich weiß, mir fehlen "etwas" die C-Grundlagen. Könnt ihr mir ein Buch über µC-Programmierung in C empfehlen? MfG
annehmen. Aber zu Doku Zwecken ist es immer gut explizit zu sein. > Ich weiß, mir fehlen "etwas" die C-Grundlagen. Könnt ihr mir ein Buch > über µC-Programmierung in C empfehlen? Über µc Programmierung an sich nicht. Aber das hat auch relativ wenig mit µC an sich zu tun. Das sind Dinge, die auf allen
-
Thread
Genesys 2 (Xilinx Kintex 7): Audio-Codec Implementierung und Filteranbindung
ich also die Bits für A? Das Vorzeichen ist das MSB, also das Bit 6 aus Byte 0. Das kann man abfragen durch Maskierung, es hat den Wert 64. Wir machen also eine AND Verknüpfung: Byte_0 & 64. Ist das Bit 6 gesetzt
-bit input: A data input .B(B), // 18-bit input: B data input .C(C), // 48-bit input: C data input .CARRYIN(CARRYIN),
-
Thread
ISE übersetzt irgend wie nur Mist
eine LED zum blinken gepracht ledclock: process begin wait until rising_edge(clk); if (c<24999999) then c <= c+1; else c <= 0; x <= not x; end if; end process ledclock; --hier wird der Takt für das weiterschalten der Segment Stelle generiert segclock: process
funktioniert in der Simulation, aber in der Synthese nicht! Verwende if rising_edge(clk) then > if (c<24999999) then > c <= c+1; > else > c <= 0; > x <= not x; > end if; end if; > end process ledclock; In diesem Prozess ein ganz böses Faul indem du hier den clock "segclk" verwendest
-
Thread
Probleme mit ADC und UART
AT90S8535 geschrieben, um die Spannungen an den 8 Eingängen zu messen. Durch Befehle kann man die einzelnen Kanäle abfragen, oder zwischen 10 oder 8bit Wählen (Bit ADC10 in Register Bits gesetzt oder nicht). Ebenso wird entweder einmal oder kontinuierlich umgewandelt und übertragen (Bit FreeRun in Register
ausgelesen werden soll) muss man vor dem Auslesen des ADC eben in einer Schleife das ADC-Int-Flag abfragen (Datenblatt fragen). Aber dies im normalen Code und nicht in einer ISR! Viel Erfolg, Bit- & Bytebruch... ...HanneS...
-
Thread
Ist es noch sinnvoll, mit Controllern zu arbeiten?
glaube ich, das sich die Beschäftigung mit den Controllern alleine (sicher sehr anspruchsvoll ab 32 Bit) zu wenig ist und einem Scheuklappen aufsetzt. Früher hatte ich Freude, wenn ein I2C/SPI/CAN/Display/GSM/BT/USB usw. Treiber richtig funktionierte ;-). Damit kann ich nun nur mehr ein müdes, mitleidiges
gehört jedoch auch zu betrachten was die eigenen Fähigkeiten & Ressourcen hergeben. Wer z.B. kein C oder Assembler mag ist ggf. mit einem MicroPython-fähigen µC besser aufgehoben (z.B. stm32, teensy, nRF51 16bit-PIC). Ein Video welches mir parallel zum lesen dieser Frage durch purzelte: https:/
-
Thread
Verständnisfrage zum UDS-Protokoll
SLCAN-Protokoll bediene ich über ein Python3 script. Nun habe ich versucht eine einfache UDS-Abfrage durchzuführen. Dabei möchte ich die HW-Versionen des Moduls auslesen. Laut UDS-Standard (ISO 14229-1) verwende ich dazu den Service Identifier (SID) 0x22 alias "Read Data By Identifier") und darin
Du kannst mal zur Übung SID 22 und DID F189 abfragen, das ist die SW-Version. Die ist üblicherweise nur 4 Byte und passt damit als komplette UDS Antwort in eine CAN Botschaft. Damit SingeFrame und kein Flow-Control und keine CF.
-
Thread
ISM BAND FSK TRANSMITTER MODULE RFM02 - C Problem
// RFXX_DATA = 1 } else { PORTB &= ~(1<<RFXX_DATA); } aByte<<=1; } } [/c] In dieser Funktion werden zu Anfang zwei Schleifen durchlaufen. Erst solange Bit 4 an PortB gesetzt ist, und dann solange Bit 4 an PortB nicht gesetzt ist. Ich vermute Mal diese Vorgehensweise soll
der Grundzustand von nIRQ). Dann warte bis nIRQ auf Low ist und damit der RFM anzeigt, daß er ein Bit haben will. Bit an die Leitung anlegen. Wenn noch nicht alle 8 Bit raus -> wieder von vorn. Und hier kommt die Bedeutung der Abfrage auf nIRQ High ins Spiel: der Schleifendurchlauf der for-Schleife
-
Thread
Bussystem?
funkitonieren. Ich schicke über die RS232 meines PC's ein String der folgendes Enthält: [Geräteadresse][Abfrage oder Befehl][Zustand] z.B. 245 0 Abfrage / 1 Befehl 0 aus / 1 an Ich kenne mir mic µP aus aber ich habe keine Ahung wie ich sowas realisieren kann! Hat jemand eine Idee, oder weiß vielleicht
Ich baue gerade soetwas mit einem veränderten I2C Protokoll, das an das TCP/IP Protokoll angelehnt ist. Ich habe bereits einen 'Router' entwickelt, dadurch kann ich auch längere Stecken überbrücken und halte die Datenrate auf den einzelnen Leitungen
-
Thread
Finde Fehler nicht !
8 Taster sollen nicht 8 Inputbits belegen, sondern nur 4. Ich wollte es binär lösen. Taster 1 = Bit 0 Taster 2 = Bit 1 Taster 3 = Bit 0 + Bit 1 etc. Hier der Code: [c] /*----------------------------------------------------------------------------- ON - OFF switch with pushbutton 8
was wie "den PIN auslesen" tust du gar nicht. Du ließt den kompletten Port (alle acht Pins, also 8 Bits) und dann maskierst du ein einzelnes Bit aus. Und das Ergebnis ist dann halt entweder 0, oder der Wert, der sich ergibt, wenn nur diese eine Bit im Byte 1 ist.
-
Thread
Statusanzeige/Alarmanlage: Anregungen und Tipps gesucht.
Carsten-Peter C. schrieb im Beitrag #7599229: > vielleicht ist auch ein kleiner Webserver interessant z.B. ESP oder > Net-IO. Mit dem könnte man über eine Matrix die Kontakte abfragen und > auf jedem z.B. Handy
nehmen, die haben ein geileres CTR. Wenn man eine coole Auswertung bauen kann, kommt man mit 2 Bits aus, macht man sich's einfach, sinds halt 3 Bits (und Komparatoren).
-
Thread
Bräuchte euren Rat/Denkanstoss für µC-Bus
den uC nötig, ... Das einzige, wofür ich mir eventuell einen zusätzlichen uC aussuchen würde, wäre vielleicht wirklich einer für das LCD. Zumindest, wenn du vor hast das LCD ohne serielle Schnittstelle anzusprechen
jetzt eine idee vllt ein multiplexer zu verwenden, um die weiteren 3 sensoren über diesen mit dem µC zu verbinden und nach der reihe sie einzeln ansprechen über eine gemeinsame rs232 leitung? ginge das? denke ja, aber is das elektrotechnisch sauber gelöst? gibs andre bauteile, die da mehr geeignet sind
-
Thread
Kubikwurzel bilden
ist ganz einfach: Im Ergebniswort werden — beginnend mit dem höchstwertigen — nacheinander die einzelnen Bits testweise auf 1 gesetzt und geprüft, ob die dritte Potenz des Ergebnisses kleiner oder gleich dem Radikanden ist. Ist dies der Fall, wird das 1-Bit in das Ergebnis übernommen, ansonsten bleibt
Bit am Ausgang?
-
Thread
Roboterbau - Kombination von Raspberry und Mikrocontrollern
Meine Idee hierbei wäre es, an mehrere AtMegas/Attinys verschiedene Sensoren zu hängen (also z.B. ein uC für Wettersensoren, ein weiterer für Gyroskope/GPS/Radar/Lagesensoren). Softwaretechnisch würde dann die Hauptsteuerplatine - in diesem Fall ein Raspberry Pi 3 - immer die einzelnen uCs abfragen und
Mikrocontroller überhaupt Master spielen lassen? Wenn du die alle nur als Slave benutzt und alle I2C Sensoren selbst mit dem Raspberry abfragst machst du es dir deutlich einfacher. Das I2C am Ende trotzdem nicht funktioniert liegt dann nur in der fehlerhaften Implementierung des clock stretching im
-
Thread
Hackbarer(?) 21 EUR Quadcopter
Flanks von Clk Das sieht man auch gut in dem SWD Bitbanging Source, der oben verlinkt ist. [c] static void write_bits(uint8_t buf, size_t bits) { pin_configure(SWD_DIO_PIN, SWD_MODE_OUTPUT); for (; bits > 0; --bits, buf >>= 1) { pin_write(SWD_CLK_PIN, 0);
; ISP Control=0x33 Set bit 1= Enable ISP function... really? @3315.767938ms:Read Buf(0x5000c000)=0x00000000 @3315.927375ms:Read Buf(0x5000c01c)=0x00000000 @3315.967688ms:Write BD (0x5000c01c)=0x00000001 ; 0x5000C01C=1
-
Thread
parallele Prozesse konkurrieren um Peripherals
Symboltabelle" für den Debugger aufgebaut. Dabei ist eines klar geworden: Wegen der Bytementalität von C sind Unions mit microCore nicht möglich, es sein denn, man beschränkt sich auf eine Version mit 16 oder 32 bit Wortbreite und implementiert zusätzliche Byteoperationen per read-modify-write. Letztere
Symboltabelle" für den Debugger aufgebaut. Dabei ist eines klar > geworden: Wegen der Bytementalität von C sind Unions mit microCore nicht > möglich, es sein denn, man beschränkt sich auf eine Version mit 16 oder > 32 bit Wortbreite und implementiert zusätzliche Byteoperationen per > read-modify-write.
-
Thread
Ampelschaltung - Probleme bei der Synchronisation
else State <= A; end if; when B => State <= C; when C => if Globalcount = k then State <= D; else State <= C; end if; when D => if Globalcount = 3 then State <=
erhalte ich nun die folgenden Warnungend es Synopsis-Compilers: Pruning register CLK_EN Register bit Count(0) is always 0, optimizing ... |Register bit Count(1) is always 0, optimizing ... Register bit Count(2) is always 0, optimizing ... |Register bit Count(3) is always 0, optimizing ... Found
-
Thread
Preisgünstiger Heizungsregler bei Praktiker
wie für viele Digicams/Handy) nehmen, aber da fehlt Pin4 vom Mini-USB. Wollte jetzt nicht einen einzelnen Stecker beim C ordern. Andere Ideen?
dw 3431 ; 50°C .dw 2816 ; 55°C .dw 2322 ; 60°C .dw 1925 ; 65°C .dw 1603 ; 70°C .dw 1340 ; 75°C .dw 1126 ; 80°C .dw 949 ; 85°C .dw 804 ; 90°C .dw 684 ; 95°C .
-
Thread
Öffnen alter OR-CAD Pläne
einbinden (abb, abbneu, allg, device und omron). Zum Glück, denn bei meinem alten Orcad macht man das einzeln über den Konfigurations-Modus. Damals fehlten viele Komfortfunktionen - trotzdem erstaunlich, was man mit <100kB großen Programmen machen konnte.
so einen Dongle sauber programmieren würde, dann würde ich die Ausgabe von der Vorgeschichte der Abfragen abhängig machen. Ich meine, frage ich Zelle 7 ab, erhalte ich z. B. das Ergebnis 3. (Die vier Statusleitungen können ja nur 4 Bit liefern.) Mit Vorgeschicht meine ich, wenn ich erst 9 abfrage und
-
Thread
Timer1 läuft nicht richtig warum ?
Widerstände ein/aus. Laut Kommentar hängt aber eine LED drann. In der Hauptschleife machst du Pin Abfragen auf PINB, wobei Kommentar und Abfrage nicht zusammenpassen. Ja, was denn nun? Werd dir erst mal klar, wie du den Port B benutzen willst. (Und dann verstreu nicht die Initialisierung über 3
Alexander P. schrieb im Beitrag #1872383: > wie kann ich denn einzelne pins als eingang und ausgang zuweisen ? Tu dir selbst einen Gefallen und lies die Tutorials AVR-Tutorial AVR-GCC-Tutorial
-
Thread
Probleme mit Atmega162 und Timer0
overflow. vielleicht sollest du dir mal den generierten Assembler-Code anschauen, ob deine IF-Abfrage überhaupt noch drinnen ist...eigentlich müsste sie der Compiler rauswerfen, weil flag nie geändert wird... und sowas [c] TIMSK = 0x01; TCCR0 = 0x01; [/c] macht man nicht!
der while-Schleife, die für mich keinen Sinn ergibt tut das Programm nun auch das was ich will. [c] if(flag ==1) { flag=0; adr=PINC; PORTA = adr; PORTB = adr-6; PORTD = adr-12; } [/c] Vermute, dass das ein Problem mit der Abfrage nach den Pins zusammenhängt, welche anscheinend
-
Thread
XMOS jemand?
(time) :> void; } /* output stop bit */ TXD <: 1; time += BIT_TIME; t when timerafter(time) :> void; } [/c] Das geht bis etwa 10MBit gut, dann ist der timer schon abgelaufen vor dem nächsten Statement. Sollte im Wesentlichen
und :> Da steckt mehr dahinter als nur eine Zuweisung. Stell dir eher den streaming-operator aus C++ vor. Je nachdem wie der Port konfiguriert ist, wird dann ein Bit (oder andere Längen) seriell ausgegeben. Ports können 1 Bit, 4 Bit, 8 Bit (fehlt einer, weiß grad nicht) breit sein und entsprechend
-
Thread
Hilfe bei der Programmierung vom ATmega 2561
dem Anhang aus deinem ersten Posting fange ich leider nichts an, könntest du bitte die "normalen" .c Dateien (ich vermute es geht um C) anhängen. Gruß André
auch über ein Poti vorgegeben werden und nicht per Rampe. Aber ist Assembler nicht viel anders als C++?? MFG
-
Thread
Lockbits per Software setzen
Atmegas die Lockbits überprüfen und falls die nciht dem entsprechen, was ich brauche, setzen. [c] void check_lockbits() { #ifdef CHECK_LOCK_BITS if(boot_lock_fuse_bits_get(GET_LOCK_BITS) != 0xC0) { boot_lock_bits_set(0xC0); } #endif } [/c] Die Abfrage funktioniert wunderbar
Hi • Bit 3 – BLBSET: Boot Lock Bit Set If this bit is written to one at the same time as SPMEN, the next SPM instruction within four clock cycles sets Boot Lock Bits, according to the data in R0. The data in
-
Thread
Bibliothek: MAX 7219 / 7221 an AVR (GCC)
zurückgreifen auf max7219_disp_uint8() 7) Sowas ist teuer auf AVR: [c] if (Data & (1<<(7-i))) [/c] Stattdessen schaust du besser immer auf Bit 7 und schiebst Data nach links in jedem Schleifendurchlauf 8) Du verwendest <util/delay.h>? Das solltest du mit
Ausgabe herausfinden soll weiß ich nicht. Es sei denn ich würde in die Ausgabeschleife zusätzliche Abfragen einbauen, und dann bräuchte es im Endeffekt genauso viel Rechenzeit wie wenn ich die Abfrage vorher mache. Gruß
-
Thread
UV-Laserdrucker II
Sein Ausgangsstrom variiert mit dem Abstand zum Aluminium der Halterung. Den Verlauf der mit dem µC gemessenen Spannung in 10 Bit hänge ich als steps.pdf an. Zum Beginn messe ich die Spannung vom Sensor, liegt die über 300 Digits, fahre ich 10 mm nach rechts. Anschließend bzw. sonst fahre ich
welches auf 10.000 dpi analog x 32 bit gerechnet war ist im Rasterprozess auf 5080dpi 2c reduziert worden. Die Focusebene ist noch nicht 100 prozentig, da kämpfe ich ich im Moment, bei den Energien kann man kein CCD an den Zielort zur
-
Thread
Transistortester mit AVR Gesperrt
=> unalex: Die Defines für RS und Enable stehen unten in der lcd-routines.h: [c] #define LCD_RS PD4 #define LCD_EN1 PD5 [/c] Und zum Invertieren der Bit-Reihenfolge musst du diesen Codeabschnitt in lcd-routines.c ändern (Zeile 28-39): [c] //Eigentliche LCD-Zugriffs-Funktion
4Bit-LCD umzuschreiben, wenn nein könnte das vielleicht jemand für mich machen. Ich verstehe leider noch kein C (bin selber gerade Assembler am erlernen). Vielen Dank im Voraus Gruss Michi
-
Thread
Code Optimierung Stepper mit ADC und Taster Debounce
einstellen 1/8 SET(B,0); // PORT B Pin 0 auf 1 setzen for (;;) { if ( (bit_is_set (TIFR,0))) //Abfrage des Timer Flags { reload=ADCH; reload=reload/2; // Reloadwert zu groß TCNT0= reload; TOGGLE(B,0);
button_is_pressed() { /* Der Taster ist gedrückt wenn er gegen Masse gezogen wird */ if (bit_is_clear(BUTTON_PIN, BUTTON_BIT)) { delay_ms(DEBOUNCE_TIME); if (bit_is_clear(BUTTON_PIN, BUTTON_BIT)) return 1; }
-
Thread
berührungslos Buchdicke messen
Kreis auf, negativ und machst z.B. eine Line von diesem Kreis zur Buchmitte in den Rücken wo die einzelnen Carbon-Leiterbahnen dann kontaktiert werden. Wenn du nun nicht nur ohmisch sondern auch induktiv/kapazitiv die Kontakte abfrägst, dann hast du eine Null-Fehlerrate.
hat. Sein komisches Kunstprojekt wird er längst fallengelassen haben und statt dessen einen "Fett-µC auf dem Stuhl" kreiert haben.
-
Thread
Arduino - bringt's das ? Gesperrt
Codeschalter (oben im Bild) abfragen und habe dazu eine ziemlich lange Funktion geschrieben. Mir gab man C Beispiele mit denen das ganz einfach in ein paar Zeilen ging. Hätte ich gewusst, dass ich dort hätte einfach den Code für C nehmen
wollte einen Codeschalter (oben im Bild) abfragen und habe dazu eine > ziemlich lange Funktion geschrieben. Mir gab man C Beispiele mit denen > das ganz einfach in ein paar Zeilen ging. > Hätte ich gewusst, dass ich dort hätte einfach den Code
-
Thread
Viele Spannungsmeßwerte zum PC
user_produkte[PATTR]=HPG_1-UPG1_1-UPG2_2-UPG3_49&user_produkte[PR]=310&user_produkte[BTN]=produktbeschreibung&cHash=f270272b7c oder andere varianten http://www.plug-in.de/produkte/messen-steuern/?user_produkte[PATTR]=HPG_1-UPG1_1-UPG2_2-UPG3_0&cHash=pkkpocdhjz oder http://www.meilhaus.de/labjack+u12,i4
[c]Die Bilder in dem Forum, und dann "was gekauftes" - das paßt nit ;)[/c] Muß passen... Ich habe viele Projekte zum Thema meines Forums/ meiner HP zu laufen, habe früher auch ähnliches gebaut, siehe [
-
Thread
Peilsender -RF AVR- single chip transceiver zur Tierortung? wer hat Ahnung?
interessiert. http://www.geocaching.com/seek/cache_details.aspx?guid=57167739-bcaa-42d1-a638-d2d5678a45c4&log=y&decrypt= g
Du vielleicht auf 10°, mit einem Profi-Peiler von R&S auf vielleicht 2° bei tausendfachem Preis. c) Bei TDOA mit kurzen, breitbandigen Pulsen (UWB) bestimmt die Schärfe der Flanke die Entfernungsauflösung. Man bräuchte mindestens zwei Empfänger, wenn die Zeitpunkt der Abfrage und die Antwortverzögerung
-
Thread
CRC bei UART-Busprotokoll
gut. Ich habe euch hier erstmal nur den fehlerfreien Ablauf geschildert. Natuerlich habe ich noch Abfragen auf Zeitueberschreitungen, fehlende 'ACK' und Datenkollisionen drin. Somit kann ich auch eine Fehlerunterscheidung treffen und auf die einzelnen Fehler unterschiedlich reagieren. Ich moechte eine
Max C. schrieb im Beitrag #2813107: > Da ich vorallem > Sensordaten abfragen will, wuerde ich diese am liebsten mit einem > Zeitstempel versehen. CAN funktioniert i.d.R. so, daß die Teilnehmer nicht
-
Thread
"Eigenes USB-Gerät" für eigene Software
fangen doch die Probleme wieder an - Angefangen bei den Treibern für die einzelnen Systeme (Oder das man überhaupt einen Treiber braucht!) darüber das man nichtmal eben flexibel nen anderes System (vom µC über nen Oszi hin zum Pc) anstöbseln kann, und aufgehört das man ja das PC
richtigen Ports - da gebe ich mich geschlagen, das ist korrekt. Ich habe mir da aber angewöhnt ne "Abfrage" in meine Programmierung mit "einzubauen" - bei Auflisten der einzelnen Ports auf der Rechnerseite wird, sofern möglich, jeder Port geöffnet - eine Zeichenfolge geschicht, welcher (wenn der µC an
-
Thread
LED-Uhr mit Attiny26
LEDs antreiben oder besser noch mit 7-Segment-Treibern, von denen es etliche zur Auswahl gibt. Der µC steuert dann nur noch die seriell ausgegebenen Bits für die Anzeige, läuft mit seinem Quarztakt und stellt das "Uhrengetriebe" dar. mfg
S. (a-za-z0-9) (besser als ich) anmerkte, wird das zumindest für die oberen PNP NICHT... in einzelnen Buchstagen : N --- I --- C --- H ---T funktionieren !!! Glaubst du wirklich, dass du diese Widrigkeiten alle aus dem Weg räumen kannst, wenn du nicht einmal weißt, wie Portpins softwaremäßig zu
-
Thread
String empfangen und auswerten
schon sowas wie eine Variable mit vielen Bytes gut. Also ein Array von chars. Das macht man so in C : char Buffer [16]; danach kannst du über eine Zahl oder Variable (Index genannt) auf einzelne chars zugreifen int i=0; char was; was=Buffer[5]; was=Buffer[i]; Wobei 0 das erste Element eines
Buffer[15]=UDR; Buffer[16]=UDR; Buffer[17]=UDR; Buffer[18]=UDR; Buffer[19]=UDR; } [/C] Nein. Was soll das sein? Tu dir selbst einen Gefallen und lern doch erst mal die Grundlagen. Versteh, was die einzelnen Komponenten machen und warum der Code so ist wie er ist http://www.mikrocontroller.net