-
Thread
32-Bit-µC: Möglichst viel uint8_t verwenden?
Genau genommen tut es allerdings derjenige, der das Include-Files dazu schreibt, und bei einer 32-Bit RISC für int_fast8_t einen 32-Bit Typ einsetzt, bei 8-Bit AVR aber einen 8-bit Typ.
Auszug aus https://wiki.freepascal.org/Integer : The size of an integer is dependent upon the bit size of the target machine to which the compiler is to generate code (32 bit or 64 bit), the type of compiler (16-bit, 32-bit or 64-bit), and upon compiler switches in some cases. Ohne die flexible
-
Thread
Analyse der Arduino Libraries
wird: > > https://github.com/arduino/Arduino/blob/1.5.2/hard... > > Leider braucht das PIN-setzen dadurch auch einige Zeit. Nicht nur das, der Zusammenhang zwischen Bits und Ports geht auch verloren. Wenn ich damit z.B. einen 8Bit-DAC ansteuern will, kriege ich zwischen 2 Werten riesige Spikes
wird: >> >> https://github.com/arduino/Arduino/blob/1.5.2/hard... >> >> Leider braucht das PIN-setzen dadurch auch einige Zeit. > > Nicht nur das, der Zusammenhang zwischen Bits und Ports geht auch > verloren. > Wenn ich damit z.B. einen 8Bit-DAC ansteuern will, kriege ich zwischen 2 > Werten
-
Thread
Blinklicht in Assembler
die Nähe Deiner gewünschten Frequenz kommt. Takt / Vorteiler / 65535 = Interruptfrequenz. Welche Bits in welchen Registern das genau sind, steht im Datenblatt in den Kapiteln zum Interrupt und zu dem Timer1. Dann kannst Du in der Interruptroutine irgend ein Bit setzen, und dieses im Hauptprogramm abfragen
dürfte einfach nicht zu zählen beginnen oder kein interrupt auslösen! Muss ich da noch irgend ein Bit setzen??
-
Thread
-
Thread
wie bit ändern in nicht-IO register?
MCUCR /ist/ ein IO-Register... Anyway, die generische Lösung ist: IO-Register einlesen, Bit setzen, IO-Register rückschreiben.
SBR ist genau die Antwort auf Deine Frage; mit diesem Befehl kannst Du einzelne (oder mehrere) Bits in einem der Register R16-R31 setzen. sbr r16,0b00001000 setzt z.B. Bit 3 in Register 16. Gruß, Frank
-
Thread
0-pointer in c
Die einzelnen Bits testen?
Daniel A. schrieb im Beitrag #5227938: > Bei PC Programmen setze ich mindestens das vorhandensein > eines OS und der meisten POSIX funktionen voraus. Dort ist der Wert eines Nullpointers immer "kein Bit gesetzt" und CHAR_BITS ist 8. Kannst du dich drauf verlassen
-
Thread
AVR 8Bit Einstieg: Fragen zu Entwicklungsumgebung
I2C, SPI, USART, LCD, ...) - einfache Hardware Plattform, darf durchaus "Luft nach oben" haben - 8Bit Umgebung reicht performancemässig völlig aus - Leiterplatten müssen nicht zwingend selbst geätzt sein, Controller-Module sind eine nette Sache (die Anfängerfehler sind schon raus...) - Programmierung
investieren. Ich möchte nicht ohne arbeiten! Damit kannst Du z.B. in zeitkritischen Anwendungen durch Setzen und Rücksetzen eines Portpins Laufzeiten messen und in (fast) Echtzeit debuggen (ich weiß allerdings nicht, wie echtzeitmäßig das Debuggen mit dem Dragon ist). Gruß Dietrich
-
Thread
Bit als Variable definieren in C (STM32)
. 8 bit.
Erwin D. schrieb im Beitrag #5557990: >> Das T-Flag beim AVR ist im Prinzip ein 1-Bit-Register. > Das ist falsch. Das T-Flag ist nur ein Bit im 8-Bit-Register 'sreg'. Im Gegensatz zu allen anderen Bits in SREG ist es frei setz- und löschbar, hat keine Sonderbedeutung und ändert sich
-
Thread
Transistortester mit AVR Gesperrt
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; 4-Bit-Modus void lcd_send(unsigned char data) { // oberes Nibble setzen
) - D6(13) PD2(4) - D5(12) PD3(5) - D4(11) My code: //Eigentliche LCD-Zugriffs-Funktion; 4-Bit-Modus void lcd_send(unsigned char data) { unsigned char swap[16] = {0x00,0x08,0x04,0x0C,0x02,0x0A,0x06,0x0E,0x01,0x09,0x05,0x0D,0x03,0x0B,0x07,0x0F}; // oberes Nibble setzen LCD_PORT = (LCD_PORT
-
Thread
LCD 1602A an Atmega128A will nicht funktionieren
Ok, ist einen Versuch wert. Wie setze ich denn diese Fuse im AVR Studio 6?
geschaut habe: [c] static void lcd_enable( void ) { LCD_PORT |= (1<<LCD_EN); // Enable auf 1 setzen _delay_us( LCD_ENABLE_US ); // kurze Pause LCD_PORT &= ~(1<<LCD_EN); // Enable auf 0 setzen } [/c] Da immer zweimal 4 Bits geschrieben werden, könnte die Zweit zwischen fallender Flanke
-
Thread
16-Bit Timer im Comparemode funktioniert nicht
aktuelle Quellcodeausschnitt: void init_timer(void) { TCCR0 |= (1<<CS01); // CLK/8 8-Bit Timer TCCR1B |= (1<<CS11)|(1<<CTC1); // CLK/8 16-Bit Timer TCNT0 = 0; // Reset Timer0 TCNT1 = 0; OCR1A = 125; // Compare-Wert für 16-bit Timer festlegen
noch nicht" Das hat überhaupt nichts mit C zu tun, sondern mit dem Lesen des Datenblatts: Bit 3 - CTC1: Clear Timer/Counter1 on Compare Match When the CTC1 control bit is set (one), the Timer/Counter1 is reset to $0000 in the clock cycle after a compareA match. If the CTC1 control bit is cleared
-
Thread
ATMega 168PB Interrupt Programmieren
man nicht so. Entweder PIN=(1<<x) oder PORT|=(1<<x) PORTs sind für mich die Eingänge PORT|=1<<x Bit=1; PORT&=~1<<x Bit=0 PINs die Ausgänge PINC0 setze ich einfach auf High um den Interrupt an PORTB2 auszulösen. PINC0 ist mit PORTD2 über ein Kabel verbunden. Ich möchte das einfach nur mal so
88PB-168PB_Datasheet.pdf 15.2.1 Configuring the Pin Each port pin consists of three register bits: DDxn, PORTxn, and PINxn. As shown in ”Register Description” on page 88 , the DDxn bits are accessed at the DDRx I/O address, the PORTxn bits at the PORTx I/O address, and the PINxn bits at
-
Thread
RGB Tastenfeld in 5x4 Sonderform
while(customKeypad.available()){ keypadEvent e = customKeypad.read(); Serial.print((char)e.bit.KEY); if (e.bit.EVENT == KEY_JUST_PRESSED) { Serial.println(" pressed"); uint8_t row = e.bit.ROW; uint8_t col = e.bit.COL; Serial.print("Row: "); Serial.print(row);
while(customKeypad.available()){ keypadEvent e = customKeypad.read(); Serial.print((char)e.bit.KEY); if (e.bit.EVENT == KEY_JUST_PRESSED) { Serial.println(" pressed"); uint8_t row = e.bit.ROW; uint8_t col = e.bit.COL; Serial.print("Row: "); Serial.print(row);
-
Thread
Sekunden,Minuten zählen mit der Funktion Millis()
geht auch mit 32 Bit ;-)
#6520459: > Und jetzt jammer bloß nicht rum, daß man dazu eine extra Variable > braucht! Deine 64Bit Zähler sind auch nicht kostenlos, dort steckt die > Variable vier mal drin! Keine Angst, ich weiß sogar, dass ein 64 Bit Zähler doppelt so viel Platz braucht wie ein 32 Bit Zähler! > Wer mit
-
Thread
LCD funktioniert nich
4 Bit maskieren LCD_PORT &= ~(0xF0>>(4-LCD_DB)); // Maske löschen LCD_PORT |= (data>>(4-LCD_DB)); // Bits setzen lcd_enable(); } void lcd_init( void ) { // verwendete Pins
) { LCD_PORT &= ~(1<<LCD_RS); // RS auf 0 setzen lcd_out( data ); // zuerst die oberen, lcd_out( data<<4 ); // dann die unteren 4 Bit senden _delay_us( LCD_COMMAND_US ); } void lcd_clear( void ) {
-
Thread
Höchstmögliche Schaltfrequenz an einem normalen AVR Ausgangs-Pin
zugreifen kann als auf RAM. Einfaches Lesen oder Schreiben geht in einem Takt statt in zwei, einzelne Bits setzen oder löschen geht in zwei Takten statt in fünf. Ob das aber in deiner Anwendung irgendeine Relevanz besitzt, kannst bestenfalls nur du wissen, weil nur du diese kennst. Es könnte nämlich genausogut
PSOC 6 hat 32 Timer 8x 32Bit 24x 16Bit Oder PSOC 5 mit UDBs selber machen
-
Thread
Einfluss Lockbit LPM setzen auf Rom
Hallo, bei der Berechnung einer 32bit crc über das komplette ROM eines AT90CAN128 habe ich festgestellt, daß sich die crc ändert, wenn das Lockbit LPM für die Bootsection gesetzt wird. Kann mir jemand sagen, welchen Einfluss das setzen
Sven schrieb: > Kann mir jemand sagen, welchen Einfluss das setzen von LPM für die > Bootsection auf die zurückgegebenen Daten hat, wenn die Funktion > 'pgm_read_byte_far' auch für diesen Speicherbereich aufgerufen wird? Warum nicht einfach eine Schleife über die
-
Thread
XMega 32Bit RTC
sind allgemein stark revisionsbedüftig. Das RTC32 Modul wird über VBAT initialisiert. a) ACCEN bit in VBAT CTRL setzen , dies setzt auch die RTC32 Freigabe 0 b) Reset VBAT ( via CCP ! ) c) oscillator failure detection freigeben ( und Optional high ESR mode ); d) Wait 200µs e) Quarzoszillator freigeben
optional h) Optional interrupt level for compare match & overflow interrupt i) Freigabe der 32-bit RTC , ENABLE bit in CTRL wichtig bei c) und e) die entsprechenden Bits gemeinsam setzen Punkt a) bis f) kann nur einmal nach dem Reset ausgeführt werden. Späteres Setzen von PER ist nur nach
-
Thread
24 bit signed data in 32 bit int (ARM SAMS4) und das sparsam über UART
0x80) temp |= 0xFF000000; int32_t temp2 = (int32_t)temp; [/c] Wenn ich nun aber die obersten 8 bit einer signed 32bit variablen zu 1 setze, bekomme ich zwar das Vorzeichen - aber doch auch eine viel größere Zahl!? Müsste ich nicht eigentlich nur bit 31 für das Vorzeichen zu 1 setzen und den rest
sign extension". http://en.wikipedia.org/wiki/Sign_extension > Wenn ich nun aber die obersten 8 bit einer signed 32bit variablen zu 1 > setze, bekomme ich zwar das Vorzeichen - aber doch auch eine viel > größere Zahl!? Nein, zmindest nicht, wenn du im Zweierkomplement rechnest. Gehen wir mal
-
Thread
nur ne frage zum tutorial
setze bit an der stelle von URSEL und UCSZ0 auf 1 aber was bedeutet 3<<UCSZ0? Bit auf 3 setzen geht ja schlecht und URSEL ist nicht das erste bit und UCSZ0 nicht das dritte. Bitte klärt einen blöden
Dokumentation zu den Bits zu suchen. Dahingehend sagt mir (1<<URSEL)|(3<<UCSZ0) zumindest wie die Bits die ich setzen will heissen und ich kann gezielt im PDF danach suchen. Mal ganz abgesehen davon, dass ich ohne
-
Thread
IO Ansteuerung am LPC
anderes, als den vorangesetzten Wert um die zu shiftenden Stellen nach Links zu bewegen. Beispiel (8Bit): |0000|0001| und die 1 wird um 3 geshiftet, dann steht da |0000|1000| Aber da du nur ein einziges Bit setzen willst, schreib einfach (1 << 18)
Matthias Nix wrote: > IOCLR0 &=~(0x1F << 18); // Set all LED Bits to 0 IOCLR0 = 0x1F << 18; // Set all LED Bits to 0 > IOCLR0 |= (ledmask << 18); // Set LED Bits IOSET0 = (ledmask << 18); // Set LED Bits
-
Thread
Gesetztes Bit bleibt nicht aktiv. ISR löscht Bit.
mich meine Berven kostet. Der Tiny macht mich ech zu schaffen.... Problem: in der main schleife setze ich ein bit, dieses wird aber sofort wieder zurück gesetzt. die led an dem pin blinkt nur kurz auf. [c] // Countdown 199 - 0 auf TOT-4301 (2,5 Stelliges 7-Segment von Pollin) // ATtiny2313
#include <stdio.h> #include <util/delay.h> #include <avr/interrupt.h> #define SETBIT(ADRESS, BIT) (ADRESS |=(1<<BIT)) //Makro zum Setzen eines Bits #define CLEARBIT(ADRESS, BIT) (ADRESS &=~(1<<BIT)) //Makro zum Loeschen eines Bits #define CHECKBIT(ADRESS, BIT) (ADRESS &(1<<BIT)) //
-
Thread
Fuse Bits bei AT90USB647 setzen - wie ?
Paltinenlayouts haben wir den Boot-Taster vergessen und müssen somit in den Fuses BOOTRST von 1 auf 0 setzen. Nun habe ich mir ein Kabel für den Parallel Port (Picoweb) gebastelt und kann auch auf den uC Connecten und das hfuse-Bit Aulesen, jedoch können wir dieses Bit nicht verändern. Folgendes habe
Ja hab mir auch schon gedacht, dass es an den lockbits liegt - aber ich konnte dieses auch nicht setzen - hier tritt ebenfalls der selbe Fehler auf - kann ich das Bit auch ohne avrdude setzen?
-
Thread
Fuse bits auswählen
hallo habe einen atmega8, den ich mit ponyprog programmieren möchte. ich soll diese fusebits setzen: high byte = 0xc9, low byte = 0x9f was muss ich da ankreuzen?? mfg
-
Thread
Anfängerfrage avr/interrupt.h
wären mindestens 3 Befehle dafür notwendig. Grob etwa: * lade SREG in ein Arbeitsregister * setze bit im Arbeitsregister * schreibe Arbeitsregister zurück nach SREG Der AVR kennt aber einen speziellen Befehl dafür, eben sei. Mit der __asm__ Anweisung kann man direkt im C Code beliebige Assembler
Peter D. schrieb im Beitrag #6495641: > CLI, SEI sind eigenständige CPU-Befehle. > Ein Löschen, Setzen auf andere Art kann Seiteneffekte haben. Nein, CLI und SEI sind Assembler-Mnemonics und in diesen Fall nur Aliase zu den Mnemonics "BSET s" und "BCLR s" Hier die 16-Bit Opcodes der Befehle:
-
Thread
Datei kopieren = bitgleich?
das macht sie aber nur wenn die CRC nicht stimmt, leider erkennt man mit > der CRC nur 1 oder 2 bit Fehler. Wenn ein paar mehr bits falsch sind, > kann die CRC wieder stimmen. Das ist ein wenig mehr als bloss eine CRC für 1-Bit Fehler am Werk.
hier. Die Bits im Rechner werden schon nervös. :-)
-
Thread
universeller 4 bit Zähler
direkte Set und Reset-Eingänge. Ausgabe erfolgt auf einer 7-Segment-Anzeige Um einen asynchronen 4 bit Zähler zu realisieren, brauche ich ja 4 JK-Flip-Flops bei denen setze ich J=K=1 jeweils. Nun hatte ich mir vorgestellt, dass ich den Zähler ganz normal laufen lasse, also bei Null beginnend. Damit
>Um einen asynchronen 4 bit Zähler zu realisieren, brauche ich ja 4 >JK-Flip-Flops bei denen setze ich J=K=1 jeweils. VERGISS DAS GANZEN ASYNCHRONGEMURKSE! @ Stefan M. (celmascant) >Sagt mal bin ich eigendlich der einzige
-
Thread
C++ Objektorientierung ?
"segel" gibts z.b. zwei Objekte in der main : Gross und Fock. Ich kann jetzt in der main "Gross.setzen()" aufrufen, und "Fock.setzen()" . Als Wert dafür brauche ich in "setzen" einen Inkrementzähler , der in einer ISR an der main geschrieben wird. den kann ich z.b. mit "Gross.Klauinkrement" in der
> > Diesen Teil verstehe ich nicht ist vom erzeugten code wie ein Pointer [c] // Pointer setze(Segel *segel) { segel->setze(50pct); // wenn segel = nullptr ist, dann knallts } // Referenz setze(Segel &segel) { segel.setze(50pct); // muss nicht auf nullptr geprüft werden } [/c]
-
Thread
suche 4 bit zähler
Ringzähler nach dem wort habe ich gesucht gibt es da auch einen 4 bit ringzähaler? oder setze den vierten ausgang einfach auf reset, das müsste doch der MR eingang sein?
Hi >Ringzähler nach dem wort habe ich gesucht gibt es da auch einen 4 bit ringzähaler? Kaum. Es sei denn du baust den dikret auf. >oder setze den vierten ausgang einfach auf reset, das >müsste doch der MR eingang sein? Das geht. MfG Spess
-
Thread
Bits aus Register laden
loeschen sbrc r17, 7 ;falls MSB=0, überspringe sbi PORTD, 4 ;PD4 setzen lsl r17 ;schieben für weiteren Durchlauf dec r16 brne naechstes_bit ;weiter im programm
Hi Korrektur: lsl r16 ; nächstes Bit muss lsr r16 ; nächstes Bit heissen.
-
Thread
pic das forum Gesperrt
laden movwf TRISA ; alle Pins des Port A als "Input" schalten bcf ADCON1, PCFG3 ; Bit3 im ADCON1-Register löschen (= PORTA auf digital I/0 konfigurieren) bsf ADCON1, PCFG2 ; Bit2 im ADCON1-Register setzen (= PORTA auf digital I/0 konfigurieren) bsf ADCON1, PCFG1 ; Bit1 im
SPI-Schnittstelle (Register liegt in Speicherbank 0) bsf SSPCON, SSPEN ; im SSPCON-Register das Bit 5 setzen! (SSPEN = synchronous serial port enable bit) bcf SSPCON, CKP ; im SSPCON-Register das Bit 4 löschen!(CKP = clock polarity select bit) bcf SSPCON, SSPM3 ; SSPM3...SSPM0: 0100 =
-
Thread
mit welchen Lock Bits ist ein ATmega noch lesbar?
weiß ich, dass dieses File nutzbar sein wird? Sehe ich das richtig, dass ich EEPROM, Flash, Fuse Bits und Lock Bits kopieren würde und dann sollte ich einen identischen Baustein haben?
das Board hier trotz "Trolling" ist. ;-D Wie würdet Ihr ne Fuse konstruieren, das entsprechende Bit im Sperrfalle auf "H" oder "L" setzen?
-
Thread
LCD Anzeige macht Probleme
Bit 0-3 auf 0 setzen > byte |= (1<<lcd_rs); //RS setzen > PORT = byte; //oberes Nibbel Ausgeben > lcd_enable(); > byte = sich_byte; > byte = byte<<4; //Nibbles vertauschen > byte &= ~0x0f; //Bit 0-3 auf 0 setzen > byte |= (1<<lcd_rs); //RS setzen > PORT = byte; //unteres Nibbel Ausgeben > lcd_enable(); basiert darauf, das Bit4..7 an Port4..7 hängen. Reichen deine C-Kenntnisse
-
Thread
8-Bit Überlauf erkennen, bei addtion einer Konstanten
Subi setzt die Flags H,S,V,N,Z und C. Bei der > Beispielrechnung wird aber keine Bedingung zum Setzen eines dieser Flags > erfüllt. > > MfG Spess Hallo, ich habe schon oft gemerkt, das Leute die sich mit einer Materie schon lange auseinander setzen oder Ihnen diese absolut klar ist, sich
#1747846: > Wie erkenne ich nun Programmtechnisch elegant (Assembler), das der > Zahlenbereich von 8-Bit überschritten wurde ? Wie schon von Peter gesagt wurde, das Carry-Bit reagiert schlicht und einfach nur invertiert. Also einfach die Verzweigung nach der Subtraktion gegenüber der eigentlich gewollten
-
Thread
CPU Selbstbau Gesperrt
auf verschiedenen RAM-Datenbreiten identisch laufen, und auch auf einer kleinen CPU gäbe es native 32bit-Operationen. Oder es würde ausreichen, einen 1-Bit-Addierer in die CPU zu setzen und damit auch "breite" Additionen auszuführen. ist vielleicht langsamer, aber warum nicht. Eine interessante Möglichkeit
uralt) gefunden. Der RAM-Controller hat der CPU mitgeteilt, ob ein Adressbereich mit 8, 16, oder 32bit Daten ausgerüstet ist. Die CPU hat die zB 32Bit Zugriffe auf ein 8bit RAM dann (hardwaremäßig) in 4 Schritte geteilt; Adress-Inkrementieren inklusive. Ebenso, bei 8_Bit Zugriffen auf 32Bit RAM; wurde
-
Thread
Tasten entprellen per Software
Taster mit Umsschaltkontakt nimmt. So ist der Tastendruck sofort beim ersten Kontakt in der Lage ein Bit zuu setzen und beim Loslassen löscht der andere Kontakt das gesetzte Bit. Kostet halt einen weiteren Eingang, spart aber Entprellzeit, da schon das erste Anzeichen eines Signals eine Aktion ausführt
mit 16Bit Variablen in IRQ-Routinen.
-
Thread
Laptimer Projekt mit Magnetschleife (Atmega8)
Register auf "Null" setzen TCNT1 = 0; // Timer1 Register auf "Null" setzen start_lap = ICR1; lap_status = 1; // Induktionsschleife wurde das erste mal überfahren } else // Wenn Induktionsschleife das
wurde { overflow_ticks++; // max. 65536 da 16Bit Variable } } [/c]
-
Thread
eFuse bei mega 328p lässt sich nicht setzen
avrdude done. Thank you. [/code] Was kann da schief gegangen sein? Die anderen Fuses ließen sich setzen. Standardmäßig ist die eFuse auf 0xff, daher weiß ich nicht, wieso sie jetzt auf 0x07 gesetzt ist. Danke im Voraus
Da gab es doch mal eine Diskussion, dass nicht definierte fuse-bits als 0 behandelt werden. Ist schon eine Weile her, und ich finde es nicht mehr.
-
Thread
Eine BAT im Raspi starten bzw startfähig machen.
und trotzdem weiß der Kernel, wie sie auszuführen sind. Laufen x86-Binaries auf einem ARM? Mit X-Bit, .EXE-Endung und allem? Also Excel.exe, Explorer.exe & Outlook.exe auf den RPI kopieren, X-Bit setzen und ich kann meine gewohnte Umgebung auf einem 40€-Computer mit freiem OS nutzen? Das wäre ja
Moin, Jens M. schrieb im Beitrag #6673002: > Laufen x86-Binaries auf einem ARM? Mit X-Bit, .EXE-Endung und allem? > Also Excel.exe, Explorer.exe & Outlook.exe auf den RPI kopieren, X-Bit > setzen und ich kann meine gewohnte Umgebung auf einem 40€-Computer mit > freiem OS nutzen? > Das
-
Thread
AVR als I2C-Slave macht Probleme
Some_ISR) { sei(); //do something } [/c] Das ist doch völliger quark. sei und cli setzen doch bloß das I Bit im SREG Register, das schaltet globale Interrupts doch frei oder sperrt. Das I Bit wird doch nicht gelöscht sobald ne ISR aufgerufen wird?! Oder täusche ich mich?
Draco schrieb im Beitrag #4661841: > Das ist doch völliger quark. sei und cli setzen doch bloß das I Bit im > SREG Register, das schaltet globale Interrupts doch frei oder sperrt. > Das I Bit wird doch nicht gelöscht sobald ne ISR aufgerufen wird?! Oder > täusche ich mich? Oh
-
Thread
DCF-Uhr, Sonnenstand, TWI-Port, Alarmfunktion für m8 in C
Feiertagen umzusetzen: Im 'day of month' (1..31) sind noch zwei Bit unbenutzt (Bit.5 , Bit.6). Wenn man zum Programmstart und von da an jeweils täglich um 00:00 berechnet, ob dieser Tag ein Feiertag ist - und dann das Ergebnis in Bit.5 (wenn Feiertag) und Bit.6
einlesen können. Ich habe eine Frage bezüglcig togglen. Wenn ich einen Modus 3 (umschalten) -Alarm setze, beim dem die Minute durch setzen des Bit7 nicht berücksichtigt werden, dann schaltet der entsprechend Ausgang nun jede Minute um, oder wie oder was? Ich dachte zuerst klasse, für eine Stunde einschalten
-
Thread
Timer interrupt wird nur einmal aufgerufen.
#5816854: > Woanders vielleicht nicht. Und wann soll es nicht harmlos sein, ein bereits gesetztes Bit zu setzen?
Update-Flags und ein bedingter Sprung ist in der Regel sehr viel laufzeitintensiver als ein simples Bit-Setzen.
-
Thread
PHILIPS VP5500 VoIP Telefon bei Pollin
feststellen, leider aber bei Bit 20 (hat anscheinend etwas mit der Display-Ansteuerung zu tun). Beide Bits waren am Anfang auf 1 (PTD_DR hatte den Wert 0x0E180000). Nachdem ich Bit 20 auf 0 gesetzt habe, wurde das Display langsam weiß
danke, werde mich "heute" mal dran setzen!
-
Thread
8-Bit Latch mit "Read-back"
char bit5: 1; char bit6: 1; char bit7: 1; }TYP_PORT1; TYP_PORT1 port1 _at(0x50000); // Die Variable port1 auf Adr.0x50000 legen void main() { port1.bit0 = 1; // Bit0 setzen if(port1
Wenn es darum geht, Bits einzeln zu setzen/löschen zu können, ohne den vorherigen Zustand kennen zu müssen, dann tuts vielleicht auch der '259. Da gehen die Bits dann allerdings nur einzeln, weil adressierbares Latch. Dafür
-
Thread
Wechsel vom zwei- zum vierzeiler HD44780
#include <util/delay.h> void rs (uint8_t wert) { if (wert == 1) PORTD |= (1<<PD3); //setzen else PORTD &= ~(1<<PD3); //löschen } void e (void) { PORTD |= (1<<PD2); //setzen _delay_us(100); PORTD &= ~(1<<PD2); //löschen _delay_us(100); } void vierBitBefehl (unsigned
#include <util/delay.h> void rs (uint8_t wert) { if (wert == 1) PORTD |= (1<<PD3); //setzen else PORTD &= ~(1<<PD3); //löschen } void e (void) { PORTD |= (1<<PD2); //setzen _delay_ms(100); PORTD &= ~(1<<PD2); //löschen _delay_ms(100); } void vierBitBefehl (unsigned
-
Thread
Atmega 32, 8-Bit Timer(Timer 0)
für TimerWarte (16-bit-Timer/Counter1) void timer_warte_initial (void) { TCNT1 = 0x0000; //Startwert 0 setzen OCR1A = 0x04E2; //Vergleichsregister auf 1250 TIMSK = (1<<OCIE1A); //Output Compare Interrupt
stdint.h> #include <avr/interrupt.h> unsigned int i; // Initialisierung für TimerWarte (16-bit-Timer/Counter1) void timer_warte_initial (void) { TCNT1 = 0x0000; //Startwert 0 setzen OCR1A = 0x04E2; //Vergleichsregister auf 1250 TIMSK = (1<<OCIE1A); //Output Compare Interrupt
-
Thread
8Bit Timmer verständinis Frage
Berechnung wäre so 16MHz/1024=15624 15624/100=156,25 Takte pro 10ms Ich muss ja nur das Fuses Bit CKout setzen oder?
michi schrieb im Beitrag #2541053: > Ich muss ja nur das Fuses Bit CKout setzen oder? Nö. Du musst die CKSEL Fuses umstellen. Wenn du das nicht getan hast, dann läuft dein µC mit 1Mhz, also einem Faktor 16 zu langsam, was deinem Faktor "die zeit ist viel länger
-
Thread
Arduino und AVR: setzen der Lock und Fusebits im Code?
verwechseln das ja), die offebar die Arduino-IDE aus dem Quelltext lesen soll und damit avr-dude Parameter setzen.
bootloader.high_fuses=0xdf atmegasa16.bootloader.extended_fuses=0x05 ... [/pre] Das Schreiben der Bits erfolgt dann mit dem Schreiben des Bootloaders. leo
-
Thread
Problem mit Eagel Bite Hilfe
Hallo, habe ein Probelm mit Eagel wie kann ich Wiedersatände und Kondensatoren in meinem Schaltplan einfügen. Wenn ich auf ADD gehe und dann Wiederstände bzw. Kondensatoren eingebe dann heißt es nur immer keine gefunden. Was muss ich machen oder was muss ich dann eingeben ? Danke schon mal im voraus. MFG
-
Thread
Möchte Arduino mit RFM70-S verbinden!?
Und wie setze ich jetzt bestimmte Register? Wie muss ich das senden, dass es erstens an die richtige Adresse geht und zweitens, dass die Bits dort auch ankommen?
Ich m. schrieb im Beitrag #2555660: > Und wie setze ich jetzt bestimmte Register? Wie muss ich das senden, > dass es erstens an die richtige Adresse geht und zweitens, dass die Bits > dort auch ankommen? Sorry ich bin raus, guck ins Datenblatt.