-
Thread
Mehrzeilige defines
gefunden. Also ich habe einerseits diese Deklarationen, welche mir einfch die I/O's entsprechend setzen: [C] #define Power_Relay_1 PORTA |= BIT1; \ PORTA |= BIT2; #define Maintain_Relay_1 PORTA
define Release_Shutter_2_Down Release_Relay_4 #define Status_Relay_4 ((PING&BIT2) != 0x00) [/C] Andererseits habe ich auch diese makros, um die entsprechenden (oben aufgeführten) I/O's zu setzen: [C] #define Power_Relay_Index if(Index == 0)
-
Thread
MCP2515 schon wieder. Fehlererkennung abschalten o.Ä
zugehörenden Puffer ab, eine alte gleiche Nachricht wird einfach überschrieben. Dann legst Du noch 4 Bits an, jede Nachricht setzt das zugehörende Bit. Sind alle 4 gesetzt, weißt Du, daß jede Nachricht mindestens einmal empfangen wurde und kannst damit irgendwas machen. Peter
>Dann legst Du noch 4 Bits an, jede Nachricht setzt das zugehörende Bit. >Sind alle 4 gesetzt, weißt Du, daß jede Nachricht mindestens einmal >empfangen wurde und kannst damit irgendwas machen. Genau so habe ich das im Moment
-
Thread
8-Bit Display Ansteuerung
Bei 2 Zeilern muss man fuer die 2. Zeile ueblicherweise den Cursor auf hex 40 setzen.
Aus Spaß kannst Du abschließend auch den 4-Bit Modus probieren. Dabei wirst Du sehen, daß die Ausgabe nicht langsamer ist aber 4 Portleitungen gespart werden. Die Wartezeit für eine Zeichen-/Befehlsausgabe ist erst nach erfolgter Ausgabe des 8-Bit
-
Thread
Pin vom Mikrocontroller in Funktion mit variablen initialisieren
flashen. Nach dem gleichen Prinzip gibt es zwar Maschinenbefehle, die ein einzelnes Bit setzen oder löschen. Aber auch hier gibt es für jedes einzelne Bit einen einzelnen Maschinenbefehl. Man kann das Bit da nicht dynamisch als Parameter übergeben. Der C Compiler kann daher diesen C
> setzen, einen anderen um DDRA zu setzen, genauso sind die > Maschinenbefehle zum setzen von PortA, PortB, ... alle unterschiedlich. > Wollte man zur Laufzeit den Port ersetzen, dann müsste man diesen
-
Thread
Ist die obligatorische Endlosschleife am Ende der main Funktion nur Aberglaube?
Zugegebenermassen habe ich mich auch veraendert, also z.B. Assembler aufgegeben, und den Sprung von 8bit zu 32bit gemacht. Wenn ich Assemblerprogrammierung miteinbeziehe programmiere ich seit Ende 1990er Jahre. Allzu dramatisch ist es garnicht mit ISR, also in den meisten Faellen, insofern der Programmierer
dass die Pin-Klasse nur die Funktionalität zur Verfügung stellt, die ein Hardware-Pin kann: Auf 0 setzen, auf 1 setzen, Eingang abfragen, vielleicht noch elektrische Parameter wie Pull-Up/Down setzen. Aber nichts mit Blubb über UART senden. Bei OOP kann man durchaus globale ("freie") Funktionen verwenden
-
Thread
enc28j60 kann Adresse für die Bank Registers nicht finden im Datenblatt
wird die neue gesetzt. Das stimmt, ist aber nur ein Teilaspekt. Dummerweise kann man die Banksel-Bits nicht direkt beschreiben, sondern nur getrennt setzen und löschen. dh. man braucht ggf. zwei Befehle. In bestimmten Fällen, nämlich wenn nur Bit(s) gesetzt bzw. gelöscht werden müssen, reicht jedoch
eProfi schrieb im Beitrag #5052320: > Dummerweise kann man die Banksel-Bits nicht direkt beschreiben, sondern > nur getrennt setzen und löschen. dh. man braucht ggf. zwei Befehle. > In bestimmten Fällen, nämlich wenn nur Bit(s) gesetzt bzw. gelöscht > werden müssen, reicht
-
Thread
Was ist Fast PWM ? Gesperrt
das richtig verstehe. Wann Sägezahn und wann Dreieck? PWM und Fast PWM Was machen 8 oder 9 oder 10 Bit dabei
Alexander schrieb im Beitrag #6116106: > Ich setze den Zähler entsprechend so, dass > dieselbe Frequenz erhalten bleibt Dann hast Du nur noch die halbe Auflösung.
-
Thread
ext. Flash-ROM in C beschreiben
*((short*)0xC002AA)=0x55; *((short*)0xC00555)=0xA0; *((short*)0xC0F000)=150; [/c] ich setze dann einen breakpoint und lese danach 0xC0F000 aus. Die Adresse enthält allerdings nicht den Wert 150 sondern 32. Die Flash-Adressen sind tatsächlich 16 Bit breit. Zu der Umsetzung konnte mir der
wäre sie mit 0x0000 nach dem Sektor Erase bereits beschrieben. Es ist nicht möglich im Flash wieder Bits zu setzen; es kann nur von 1 auf 0 gewechselt werden (Daher das "Füllen" mit 0xFFFF beim Erase). Die Adresse kann also keine Flash-Adresse sein. Korreliert der Wert 0x0004 mit der Anzahl der geschriebenen
-
Thread
16bit seriell in 16bit Variable auslesen
Das funktioniert schon vorher nur deshalb, weil es Bit 7 vom Port ist. Dein Schema würde bei 16 Bits nur mit Bit 15 vom Port funktionieren.
if(PIND & (1<<CPLD_nSerDATA)) { u16Result |= 1; //Wenn 1 ankommt, Bit0 in Result auf 1 setzen } }
-
Thread
Fusebit setzen schlägt fehl.wie kontrolliere ich ob quarz aktiv ist
programmieren. Dazu habe ich mir die Demo von Bascom runtergeladen. Probleme macht mir dabei das setzen der Fusebit´s. Immer wenn ich das „Fusebit KLA987“ auf „111110:Ext.Crystal/Resonator ….“ setze und dann „WriteFS“ drücke wechselt das Fusebit wieder auf „000000:Ext.Clock…..“ also auf den
nimm zum fuse-bit bearbeiten lieber das hier: http://shop.myavr.de/index.php?sp=download.sp.php&suchwort=dl112 J.
-
Thread
Probleme mit Schieberegister
eines möchte ich noch mal nachfragen da Du mit dem Scope messen kannst: Du mußt erst auf dem einen PortBit das Datenbit setzen und halten. Dann mußt Du auf einem anderen PortBit das Taktbit auf 1 setzen (vorher muß es auf 0 gewesen sein), wobei das Datenbit sich selbstverständlich nicht ändern darf! Nun
kommentiert: DI = Datenbit CP = Taktbit for(i=6;i>=0;i--) { // Schleife für einzelne Bits if((databyte >> i) & 1) // Wenn Bit = 1 sbi(LCD_PORT, SR_DI); // DI auf High setzen else // andernfalls cbi(LCD_PORT, SR_DI);
-
Thread
Schieberegister HC595_Verständnislückchen
brennen voneinander trenne, dann klappt es nicht. 2. Kann man das Schieberegister komplett auf 0 setzen? Oder muss ich jedesmal 8 0-bits durchschieben? Mit Reset klappt es nicht. Ich hoffe das war verständlich :) Vielen Dank
>2. Kann man das Schieberegister komplett auf 0 setzen? Oder muss ich >jedesmal 8 0-bits durchschieben? Mit Reset klappt es nicht. Pin 10 (beim DIL-16)
-
Thread
9 bit Nachricht bei SPI-Bus für AVR
>Das zweite Problem ist, das so standartmässig ja nur 8 bit pro Botschaft >übertragen werden. Wie wärs wenn du 2 mal 8 Bit sendest.
); // CS auf High setzen } mfg Florian
-
Thread
PWM beim Atmega8
du musst auch noch die COM1Ax und COM1Bx Register setzen - sonst kommt nix. Für Phase correct PWM (8,9 oder 10 Bit) würde ich folgendes nehmen: WGM13: 1 z.B. 8 Bit Phase correct PWM WGM12: 0 WGM11: 0 WGM10: 0 COM1A1: 1 Ausgabe an OC1A und OC1B
Hi! Setze mal die entsprechenden Ports als Ausgang....dadrüber bin ich eben auch gerade gestolpert.... Habe aber auch ein Problem mit atmega8 und PWM: Laut PDF soll er 16 Bit PWM mit Timer1 können, also 2
-
Thread
32 Bit vector in ein 33 Bit unsigned überführen, wie geht das?
gleich das MSB in das 33. Bit reinschreibt, dann erkennt man einen Überlauf eines 31Bit Zählers.
stimmt. Gibt es eigentlich einen Grund dafür wieso signed generell so definiert ist dass das signed Bit bei negativen Zahlen gesetzt ist? Ich meine, das könnte man doch auch bei positiven Zahlen setzen. Dann könnte man die Zahlen viel einfacher z. B. sortieren.
-
Thread
Die PowerDown-Tücke!
Geht die MCU wirklich in den Powerdown-Modus ? Beim setzen des SE-Bits löscht Du gleichzeitig die SM- und ISC-Bits im MCUCR. Gruß Thomas
@Hagen So kompliziert wie das scheint ist das gar nicht. Man braucht doch nur das Maskierungs-Bit des Compare-Interrupts vor dem SEI zu löschen und erst nach dem CLI wieder zu setzen. Ich benutze auch ISR's die die Int's wieder freigeben, bis jetzt hatte ich noch nie Probleme. Thomas
-
Thread
Zählermit Einstellmöglichkeiten
Servus, ich habe mir einen Zähler gemacht mit 30 Bit Breite, der außer dem reinen Zählen noch folgende Funktionen hat: - enable-Signal - updown ('1' = up) - clr (alles auf 0 setzen) - maximale Adresse, bis zu der der Counter läuft, 30 Bit -
clr auf 0 setzen http://www.mikrocontroller.net/topic/119580#1083267
-
Thread
Mikrocontroller für kleine Projekte Attiny & Co.
deutlich komplexer realisiert als beim LPC (schon weil der I/O-Space nicht reicht und wegen der 8-bit Register für 10-bit ADC usw)
kleine Projekte den > ATxmega8E5(16E5,32E5), er ist schnell und einfach und hat auch einen 12 > Bit DAC drauf Nur mal zum Vergleich: für den gleichen Preis gibt es 8051 mit 20x 14-bit ADC und 4x 12-bit DAC mit 72 MHz und doppelt so viel Flash / RAM: EFM8LB12F64E-A-QFP32
-
Thread
eBus USB Adapter
Nachrichten ist bis > dato nicht unterstützt. Mal drüber nachdenken. Sicher das selbe Genie, dass eine 9-Bit genaue Temperatur in ein UCH presst und das letzte Bit "überlaufen" lässt. Ich wunderte mich doch, dass manchmal 4c und manchmal cc vor der Temperatur steht - nun das Bit7 gehört definitiv noch mit
leichte Rundungsabweichungen, aber das muss an der VRC intern liegen und zum Anzeigen reicht es (setzen kann man sie eh nicht): [c]function decode(y) { var x, cls = (y>>23 & 0xff); if (cls < 120) return 0; // theoretical "< 1", but reduced to 31 bit if (cls > 150) return ERR; y
-
Thread
Welche Programmiersprachen benutzt ihr ?
einen > kryptischen Bandwurm deswegen hinschreiben. Nee. in c ganz einfach: a |= 0x40; // setzt bit 6 b &= ~0x02; // löscht bit 1 jeder mittelmässige c-compiler setzt das direkt in die entsprechenden bit-setz/clear befehle um :-)
Es gibt 2 Ansätze bits zu setzen a |= 0x40; // setzt bit 6 a |= 1 << 6; // setzt bit 6 Wobei der zweite Weg eine Namensgebung erlaubt. a |= 1 << TxEn; // setzt bit 6 Wobei man natuerlich wissen muss, dass
-
Thread
Funkmodul mit 1km Recihweite Gesperrt
Also ich hab jetzt mal überlegt: die Daten zum Empfänger betragen für 20ms: 4*10Bit ADC Wert 1*8Bit Schalter sind 48Bit, sind 2400Bit/s (=50*48Bit). Ist die Datenrate auch entfernungsabhängig? Ich brauch nämlich mindestens diese 2400bit/s sonst wird es wohl zu abrupten Servoänderungen
, also werden die Daten z.B. nur noch alle 30ms übertragen: 33*48Bit = 1584Bit/s Ich befürchte nur, dass das Modell dadurch eventeull zu träge auf Bedienereingaben reagieren könnte. 3. Eine Kombination aus den beiden Sachen: 33*32Bit + 4*8Bit = 1088Bit
-
Thread
Anfängerfreundlicher 32-Bit Controller
Halli Hallo, ich habe bisher nur mit 8-Bit Controllern zu tun gehabt, suche jetzt aber für ein Projekt an der Hochschule einen möglichst Einsteigerfreundlichen 32-Bit Mikrocontroller + Eval-Board. Dieser sollte zunächst mal einen CAN Controller
morgen. Mich betrifft das nicht mehr, ich werde kein Entscheider in einem Grosskonzern mehr. Aber ich setze auch keinerlei Infineon-Bauteile in meinen Designs mehr ein. 2 mal gut auf die Fresse geflogen das reicht.
-
Thread
gcc11 könnte das avr Backend verlieren
Voraussetzungen gelten: i) Das Target ist standardkonform. Trifft für avr nicht zu, denn double ist ein 32-Bit Typ. ii) libsupc++ wird unterstützt, das ist der minimale Kern der C++ Standard-Bibliothek und Basis der libstdc++-v3 mit z.B. bits/c++config.h, bits/os_defines.h, bits/cpu_defines, bits/locale.h
-bit nvptx64 - NVIDIA PTX 64-bit ppc32 - PowerPC 32 ppc64 - PowerPC 64 ppc64le - PowerPC 64 LE r600 - AMD GPUs HD2XXX-HD6XXX riscv32 - 32-bit RISC-V riscv64 - 64-bit RISC-V
-
Thread
LPC11C24 HalloWelt-Programm
Du kannst dir für diesen kleinen M0 die Bibliotheken komplett sparen. Halt dich an die Doku und setze die Bits in den Registern so wie es da steht. Dann hast du nur die Hälfte zum Lernen. Natürlich brauchst du noch einen Startupcode und ein Linkerscript. Da das jede IDE selber mitbringt und auch jede
ins Manual zu schauen und nicht in irgendwelche Libs. Um das Pin 3 von Port 0 auf Ausgang zu setzen: [C] LPC_GPIO0->DIR |= (1<<3); // das UL kannst du dir hier sparen [/C] Um das Bit zu setzen: [C] LPC_GPIO0->DATA |= (1<<3); [/C] Oder Ausschalten: [C] LPC_GPIO0->DATA &= ~(1<<3
-
Thread
schwierigkeiten passenden Bus zu finden
, dann müsste er einfach gleichzeitig am Ausgang entweder seine oder die Daten des nächsten Node setzen. - er erhält also das erste Bit vom Master. Jetzt setzt er das erste Bit seiner Sensordaten. - nach den ersten 24 Bits (= seine RGB-Daten) sind seine Sensordaten durch (24 Bit Sensor-Daten) - ab
das ist das einfachstmögliche Setup. Und für einen 10x10 Tisch sind es 100 Slaves. Jeder hat 24 Bits zu bekommen, ergibt 2400 Bits. Mal Framerate von 25 ergibt 25 x 2.400 Bits = 60.000 Bits pro Sekunde. Jetzt lassen wir mal vorsichtshalber den Bus mit 100 kBit fahren, dann sind wir m.E. nicht in
-
Thread
fehler im lehrheft Gesperrt
seltsames gestoßen. Meiner Meinung nach ist es Unsinn aber vielleicht täusch ich mich da. Beim Setzen von Bits in Registern kommt es immer wieder vor, dass das Bit nicht um 1 geschoben wird sondern um 2, 3, ... Zum Beispiel: Initialisierung eines ADC ADCSRA=(1<<ADEN)|(1<<ADATE)|(1<<ADIE)|(6<<
schüler schrieb im Beitrag #4863515: > Beim Setzen von Bits in Registern kommt es immer wieder vor, dass das > Bit nicht um 1 geschoben wird sondern um 2, 3, ... Und was stört dich daran. So macht man das.
-
Thread
8Bit Grafikkarte für µC
Lassen sich die beiden fehlenden Bits aus dem 8bit Speicher einfach so ausgeben, oder werden die für was anderes verwendet ? Ich habe nämlich noch einige RAMDACs aus ISA Grafikkarten rumliegen, und die haben eine Farbtabelle eingebaut
77Hz bzw. 93Hz sein. Desweiteren ist mir aufgefallen das deine Farbpalette aufgeteilt auf die Bits im Byte vertauscht sind. Müssten die nicht MSB->LSB == R->G->B == 2 Bits frei, Hellrot, Dunkelrot, Hellgrün, Dunkelgrün, Hellblau, Dunkelblau sein ? Bei einem Timing von 125ns pro ~WR muß man ja
-
Thread
Abfragen ob Taster mehrmals gedrückt wurde
MUsterbyte erst mal in einer neuen Variable halten Je nach Zustand vom Nebel noch zusätzlich das Bit 0 setzen ( Get mit SET) und erst dann das Komplett-Ergebnis auf PORTB ausgeben
. Arbeite dich für das nächste Mal zuerst in die Grundlagen ein... - Maskieren - Schieben - Bits setzen - Bits löschen - Entprellen - Funktionen <-> ISR - Timer, PWM, ADC... - RS232, SPI, I2C... ... Kauf dir ein kleines Demo-Board wo alles forhanden ist (ein paar Taster, LEDs...) und fang
-
Thread
Programmvorschlag
dann ist das trotzdem noch zu viel Rechenleistung die benötigt wird. Was also ein Weg wäre ist, ein Bit verändern, prüfen ob das was aktuell da ist sinnvoll ist, wenn nein nicht nur ein weiteres Bit zu ändern, sondern gleich viele Bits. Also große Schritte zwischen zwei Bildern wenn der Inhalt keinen
Gustl B. schrieb im Beitrag #6640428: > Was also ein Weg wäre ist, ein Bit verändern, prüfen ob das was aktuell > da ist sinnvoll ist, wenn nein nicht nur ein weiteres Bit zu ändern, > sondern gleich viele Bits. Angenommen, du könntest tatsächlich erkennbare Muster/Bilder
-
Thread
Messen mit Atmega16
Werte it unbestritten aber du rechnest die 0 mit ein und das ist nicht korrekt auch wenn es bei 10 Bit nicht auffällt. Rechne mal mit 2 oder 3 Bit Auflösungdann merkst du den Rechenfehler '-)
Ja die Methode ist einfach indem man die Aref extra moduliert und den Schaltpunkt der Bits veschiebt. Damit kann man die Auflösung um 1-2 Bits heraufsetzen. Hab ich mal vor 15 jahren für einen 6 Bit Wandler gemacht da mit nen 8 Bit noch zu teuer war. Ging einigermaßen. Is aber in
-
Thread
Hausdrainage-Kontrolle mittels DuoLED und Levelsensor - Anfängerprojekt!
; Der Befehl sbic ("skip if bit cleared") überspringt den rjmp sensor_alternative ; darauffolgenden Befehl, wenn das angegebene Bit 0 (low) ist. sbi PORTB, 1 ; PB1 auf high setzen, grüne LED
1 ; Der Befehl sbic ("skip if bit cleared") überspringt den rjmp sensor_alternative ; darauffolgenden Befehl, wenn das angegebene Bit 0 (low) ist. sbi PORTB, 1 ; PB1 auf high setzen, grüne
-
Thread
Epidemiologischer Verlauf und Analyse von Krankheiten Teil 2 Gesperrt
muss! Wenn nicht eintritt was du glaubst, wirst du dann in deiner Hütte deinen Leben ein Ende setzen.
. Daher erspare ich es uns, mich hier auch noch mit dem Rest Deines Elaborates auseinander zu setzen.
-
Thread
Alternativen zu C, C++ auf ARM cortex M?
erinnere mich düster an elendige Wüsten im Assembly aus "lds lds .. sts sts" (AVR), nur um ein paar Bits in einer lokalen Variable zu setzen (nee...ohne volatile natürlich).
16) == 0) wird also zu (0 & 16) == 16) und falsch.klappt alo. gut, es wahren die mehr als ein Bit, ich verwende dieses Konstrukt nur zum Testen eines Bits.
-
Thread
PLL per Software
, die die PLL braucht. bei 8bit hätte man schon >3MHz. Ich weiß aber nicht, wie groß solche Vorteiler für PLL maximal sein dürfen..
weitere Beschreibung. Der DAC hat eien auflösung von 16Bit
-
Thread
µC + LCD + Tastatur - newbie
brauch ich so "Schaltblöcke", die..." Ist mir nicht ganz klar geworden was der Absatz bezweckt. Wenn 4 Bit gesetz sind liegen am Ausgang diese 4 Bit (natürlich alle "H") sowie weitere 4 Bit mit variablen Zustand an? Oder sind die variablen 4 nicht Bit sondern Analogwerte? "Mein Sound"chip" wird ein eigener
die LED blinkerei ist eigentlich gar kein schelchter anfang. Damit ein LED blinkt musst du nur ein Bit setzen oder löschen. Und bei allen anderen Sachen gehts prinzipiell gleich. Also entweder das Bit auf 1 oder auf 0 setzen ;-).. ganz vereinfacht :D. Die PICs wären auch vl eine Überlegung wert. Dafür
-
Thread
bool[8] in uint8_t umwandeln
könntest Dein Array auch in einer Schleife durchlaufen und mittels Schiebeoperationen, die jeweiligen bits im Ausgabebyete setzen oder löschen
Dein Array auch in einer Schleife durchlaufen und mittels > Schiebeoperationen, die jeweiligen bits im Ausgabebyete setzen oder > löschen Dass das so geht war mir auch vorher klar, nur wurde dir Operation (mittlerweile geändert) jede Iteration meiner for(;;) Schleife durchlaufen, und ich hatte
-
Thread
Poti mit ADC einlesen
Oder ausführlich: • Bit 4 – ADIF: ADC Interrupt Flag This bit is set when an ADC conversion completes and the Data Registers are updated. The ADC Conversion Complete Interrupt is executed if the ADIE bit and the I-bit in
Muss ich mich denn selber zitieren? >Ok, nochmal: Das ADIF wird durch setzen von ADSC gelöscht. Ich löse durch setzen des ADSC ein Messung aus (dazu ist das bit schließlich da!) und warte bis die Messung beendet ist, angezeigt durch Wechsel von null auf eins des ADIF. Liest
-
Thread
Display Ansteuerung - 16 x 4 DotMatrix LCD
|= (data>>(4-LCD_DB)); // Bits setzen lcd_enable(); } //////////////////////////////////////////////////////////////////////////////// // Initialisierung: muss ganz am Anfang des Programms aufgerufen werden. void lcd_init
Datenbyte an das LCD void lcd_data( uint8_t data ) { LCD_PORT |= (1<<LCD_RS); // RS auf 1 setzen lcd_out( data ); // zuerst die oberen, lcd_out( data<<4 ); // dann die unteren 4 Bit senden _delay_us( LCD_WRITEDATA_US ); } ////////////////////////////////
-
Thread
Wie krieg ich meinen ATMega8 programmiert? [Anfängerprobleme]
zur Marke "ende" -> Endlosschleife [/avrasm] 4. bisheriges Vorgehen, aktuelles Problem - Setzen der Fuse-Bits gemäss Forum (siehe Anhang) - Lock Bits sind alle offen - uP lässt sich ansprechen und auslesen - Erstellen der .hex-Datei aus obigem Code. - Die .hex-Datei auf den uP aufspielen
brauchst Du nicht! Nur den 10k an VCC. Was aber noch sein könnte: Schwingt dein Quarz überhaupt? Setz einfach mal die Fuses wieder auf interne Clock. Gruß
-
Thread
Verschlüsselung einer Funkstrecke - Hat jemand einen Tipp?
erinnern wie: "Verschlüsselung XY ist nicht sicher und sollte sofort ersetzt werden. Unsere Server setzen aber selber Verschlüsselung XY ein, und zwar ohne alternative. Aber wir haben Ahnung von Sicherheit und setzen sie konsequent um!" Wie ernst kann man eine staatliche Institution nehmen, die Regeln
Die Kombination "128bit Secret" und "32-bit CRC" sind dabei nur ein Beispiel für eine praktikable Lösung. 16 Byte Overhead würde man m.E. auch noch verkraften. Torsten C. schrieb im Beitrag #3592313: > Und wenn ich gar_nicht
-
Thread
Externe Interrupts (Pin Change) mit Atmega 649A
PCINT12 und PCINT14 (Pins 14 und 16) aktivieren, alle anderen sollen nicht aktiv sein. Zuerst setze ich das PCINT1 Bit im EIMSK Register, damit die Interrupts PCINT8-PCINT15 aktiviert sind. Den globalen Interrupt enable führe ich mit sei() aus. Seite 64: Register EIFR, Bit 5: Wenn nun auf einen
Code): > [c] > EIFR |= (1<<PCIF1); > [/c] > Funktioniert aber nicht, warum? Weil du so das Bit löscht und nicht setzt. Diese Bits im Flag Register werden durch das Auftreten des zugehörigen Ereignisses gesetzt. Von der Hardware. Wenn du sie gewollte setzen willst, dann steht es dir frei selber
-
Thread
Timer für Atmega32
if ( tippen == TRUE ) { setzeFensterBits(); timerTipp(); } else { setzeFensterBits(); TIMSK |= (1 << TOIE1); TCNT1 = 0;
if ( tippen == TRUE ) { setzeFensterBits(); timerTipp(); } else setzeFensterBits(); TIMSK |= (1 << TOIE1); TCNT1 = 0;
-
Thread
PWM mit Timer0 & 2 mit ATmega168PA läuft nicht
Du hast bei den COM Bits die Option "Clear OC0A on Compare Match" (COMxx1) gewählt. Ich nehme an, dass du stattdessen "Toggle on Compare Match" (COMxx0) verwenden wolltest.
OCRnA festgelegte Frequenz mit Tastgrad 0.5 möchten, einfach (1 << COM0A0) (statt (1 << COM0A1)) setzen.
-
Thread
LCD-Modul 4x20 - RE-Bit welcher anschluss?
So sollte es gehen. lcd_command(0x24); // RE-Bit Setzen (Funktion Set) lcd_command(0x09); // Ext. Funktion Set ( FW=0: 5-dot font width; BW=0: normal cursor; NW=1: 4-line display lcd_command(0x20); // RE- Bit wieder Zurück setzen; lcd_command(0x0C
Hab ganz vergessen zu erwähnen, das dass Beispiel für den 4 - Bit Modus gilt. lcd_command(0x24); // RE-Bit Setzen (Funktion Set) sets interface data length (DL=0:4-bit;
-
Thread
Arduio Zero mit ARM Cortex M0.
schrieb im Beitrag #4061112: > Also zumindest die SAMD20 haben zig Register pro Port. > Je eines zum Setzen, Löschen, Wackeln zum Beispiel. Wenn das so ist braucht es immer noch einen zusätzlichen Shift um das entsprechende Bit anzusprechen. Bei Bit-addressierbarem Speicher hat jeder Pin eine eigene 8
im Beitrag #4061173: >> Also zumindest die SAMD20 haben zig Register pro Port. >> Je eines zum Setzen, Löschen, Wackeln zum Beispiel. > > Wenn das so ist braucht es immer noch einen zusätzlichen Shift um das > entsprechende Bit anzusprechen. Was für ein Shift? Sowas wie in "(1<<PA0)"? Das wird
-
Thread
8x8 Font auf 96x96 Framebuffer kopieren
Michael schrieb im Beitrag #4804123: > Und > dann setz ich noch eins drauf und muss mit 3Bit/Pixel (RGB jeweils 1 > Bit) hantieren. ...also nur 8 unterschiedliche Farben oder wie viel Farben sollen pro Pixel möglich sein?
summsumm schrieb im Beitrag #4804363: > Michael schrieb: >> Und >> dann setz ich noch eins drauf und muss mit 3Bit/Pixel (RGB jeweils 1 >> Bit) hantieren. > ...also nur 8 unterschiedliche Farben oder wie viel Farben sollen pro > Pixel möglich sein? ...und nochmal die Frage
-
Thread
Taster entprellen
> Timer-Tick und startest von dort Deine Applikationen. > Die ISR besteht dann nur noch aus dem Setzen des Timer-Ticks, das wäre > dann ein Einzeiler. D.h. ich setze in der ISR eine Variable auf einen bestimmten Wert und setze in die Main Funktion eine if- Abfrage auf den entsprechenden Wert. In
Timer-Tick und startest von dort Deine Applikationen. >> Die ISR besteht dann nur noch aus dem Setzen des Timer-Ticks, das wäre >> dann ein Einzeiler. > > D.h. ich setze in der ISR eine Variable auf einen bestimmten Wert und > setze in die Main Funktion eine if- Abfrage auf den entsprechenden
-
Thread
Bitmodus setzen und Soft reset - LCD mit HD44780
Moin, ich gucke mir jetzt schon den ganzen Tag die Funktionsweise der Ansteuerung für LC-Displays an (C-Code), leider ist in den Tutorials mein Anliegen nicht genauer beschrieben, jedenfalls kann ich es nicht finden. Es geht um die einstellung des Bitmodus (4 oder 8 bit). [c] lcd_out( LCD_SET_FUNCTION | LCD_FUNCTION_4BIT ); [/c] Dort wird über die Funktion PortD auf xxxx0010 geschaltet was aber nach dem Befehlssatz des LCDs nicht dem ändern des Bitmous entspricht. Nach dem übrigen Code müsste man entweder mehr Datenpins vom LCD ansteuern (wenn das LCD standardmäßig auf 8bit eingestellt
-
Thread
PIC pragma config allgemeine Fragen
überhaupt Pragma verwenden um z.B. Oszillator > einzustellen? > Wiso kann ich nicht einfach dei SFR's setzen? Um die SFR zu setzen muss das Programm erst einmal loslaufen. Und damit das Programm losläuft muss der Oszillator ja erst einmal eingerichtet sein. (Alternativ zu den ConfigBits hätte der Hersteller
Tipp mal ein [Registername]bits. dann müsste eine Auswahl der einzelnen Bits kommen, die du setzen kannst. kontrollregister o.Ä. habe ich in C nicht gebraucht; das scheint der compiler selbst zu machen.
-
Thread
Feedback zur Schaltung: Differenzielle digitale Datenübertragung
Fehlerkorrektur) auch ihre Probleme haben. Definitiv! Die werden wohl eher für Anwendungen mit 10kBit/s reichen. Für etwas schnelleres würde ich dann vielleicht mal mit einem ARM basierten Board arbeiten. Und für die ganz schnellen Dinge werde ich wohl dann auf FPGAs setzen müssen. Aber das erste
folgendes gefunden: > The reason for using DS encoding is to improve the skew tolerance to > almost 1-bit time, compared to 0.5 bit time for simple data and clock encoding. Das heißt doch, dass die Zuverlässigkeit die richtigen Daten zu dekodieren höher ist, oder? Aber die Idee die Manchester-Codierung