-
Thread
I2C SW - bitte ein Bit Problem
* * For Keil C, with features of bus fault * detection, no acknowledgement feature, * and I2C busy feature. **************************************************** */ uchar Si2c_in( bit btACK ) {
ucI2CVal ^6; sbit sbtD7 = ucI2CVal ^7; sbit SSCL = P0 ^1; sbit SSDA = P1 ^6; unsigned char Si2c_in( bit btACK ); bit Si2c_out( unsigned char ucValue); bit Si2c_stop(void); void Si2c_start(void); extern void _waitnop(unsigned char nops);
-
Thread
Wieviele MIPS
definitiv sagen wieviele MIPS ein Aufruf von zum Beispiel: a=25; benötigt? Oder vieleicht eine if Abfrage: if ((Pixel[y][x]==1) && (h==0)) LATD |= (1<<y); Ich programmiere in C18. Gibt es vielleciht auch die Möglichkeit, dass einem der Compiler die entsprechenden MIPS mitteilt? Gruß McCoy
Coy schrieb: > ich hab mir grad den Assembler Code angeschaut. Demzufolge benötigt die > if Abfrage 59 Takte, sehe ich das richtig? Bei 8bit PICs sind Befehle nicht Takte. Ich glaube es sind 4 Takte pro Befehl.
-
Thread
Prototyp: Low-Cost Powerline Hausbus mit AVR
den Ausgang Daten, warum nicht TX...... Hat es was mit der Trägerfrequenze zu tun? Bin nicht der C - Kenner....
Momentan arbeite ich mit der Nullstellendetektion. Ich sende pro Nullstelle der Phase ein Bit (1Bit = 10ms lang). Das sollte doch eigentlich reichen. Der Phasenkoppler würde mich mal interessieren, kannst da mal ein kleinen Schaltplan einfügen? Mfg Matthias
-
Thread
Zeitverzögerung von 800ms einbauen (Assembler)
man Bits einzeln ändern kann, und nicht das komplette Portregister überschreiben muss.
wenns > erst im nächsten Projekt ist. Aber dann hat man sich bis dahin schon > gemerkt, dass man Bits einzeln ändern kann, und nicht das komplette > Portregister überschreiben muss. s.o. foo schrieb im Beitrag #4181456: > Also für auf high setzen würde ich auch nicht 0<<LED in den Port > schieben
-
Thread
Für was gehört der Pointer ?
+-+-+-+-+-+-+-+--+ | +-+-+-+-+-+-+-+--+ +-->|a|b|c|d|e|f|g|\0| +-+-+-+-+-+-+-+--+ [/code] Ein Array von Pointern unter dem Namen menu_strings, wobei jeder einzelne der Pointer auf einen Text zeigt. Man hätte natürlich auch ein
auf dein eigentliches Problem zurückzukommen: Du möchtest eine Menüstruktur mit Funktionen für einzelne Menüpunkte, sowie Untermenüs darstellen. Das Ganze soll auf einem µC laufen? Hast du nirgendwo erwähnt scheinbar. Arrays mit variabler Länge in structs gibt es zwar in C, ist aber eher ein spezial
-
Thread
ADC ATMega16
<<ADEN); // ADC aktivieren[/c] Auch hier gilt wieder: Holzhammermethode. Was passiert bei der oberen Zuweisung genau? Schau ins Datenblatt auf S. 219. Dort steht, was die einzelnen Bits bedeuten. Wie eine Zuweisung aussehen sollte
die Summe der beiden Register ADCL und ADCH zu, was Unsinn ist, weil du damit die Wertigkeit der einzelnen Bits durcheinander bringst. In C solltest du dich nicht mit ADCL und ADCH herumschlagen, sondern result einfach ADC oder ADCW zuweisen, weil der Rest vom Compiler erledigt wird. Das ADIF-Flag
-
Thread
Temperatursensor
unterschiede, bzw. Vor- und Nachteile? Für den DS18B20 wird laut Datenblatt die Genauigkeit von 0.5°C nur im Temperaturbereich -10°C .. +85°C garantiert, auch wenn der mit etwas verminderter Genauigkeit den Bereich -55°C bis +125°C abdeckt. Ansonsten ist er extrem handlich und pflegeleicht.
Steffen schrieb im Beitrag #3426227: > Wenn ich morgen zu > Hause bin, kann ich das mal in 10 oder 11bit Auflösung testen. Da soll > es bis 187 bis 375ms dauern. Hab es eben getestet, habe den Sensor in 11bit Auflösung abgefragt, als Zeit hab ich 400ms gewählt. Der hat bei jeder Abfrage einen anderen
-
Thread
Mikrocontroller mit Codeeinsicht
Und die Fälle, die mit XXX > getestet wurden, gehen alle durch" https://i.imgur.com/HTisMpC.jpg
anhand von Logmeldungen. Wohlgemerkt: oft - nicht immer. Du immer mit deinen Motoren. Machst du mit µC denn nur (bzw. fast nur) Motorsteuerungen, die sich sofort in ihre Einzelteile zerlegen, wenn der µC mal stehen bleibt?
-
Thread
32-Bit-µC: Möglichst viel uint8_t verwenden?
verwendeten CPU entspricht. Das ist ein Vorteil sondergleichen. Hätte man damals den Integer als 16-Bit festgetackert, würden C-Programme heute auf 32- oder 64-Bit Systemen grottenlahm laufen, weil sie mit einer solchen Altlast nicht optimal arbeiten können. Die meisten C-Standard-Funktionen arbeiten
man damals den int auf 16 Bit festgetackert und den long int auf 32 Bit und den (später dazugekommenen) long long int auf 64 Bit, dann würden heutige C Programme auch nicht langsamer laufen. Was du vermutlich sagen willst: "
-
Thread
Baudratenquarz auch bei Verwendung von FTDI o.ä.?
PLLs. Wenn man dann eine Baudrate verwendet die sich nicht gerade runterteilen laesst dann sind einzelne Bits unterschiedlich lang, damit es im Mittel ueber das gesamte Datenwort wieder passt. Was mich aber an der ganzen Sache aber am meisten fasziniert, ich hab bisher noch nie irgendein Dokument
von 8 x oder bei guten UARTs 16 x Bitrate. D.h. nach der Flanke des Startbits erfolgt die erste Abfrage nach 4 Takten (Mitte des Startbits), danach nach 12 Takten (Mitte des ersten Bits) usw. usw. (bei 16fach: nach 8, 24 usw.). Es gibt auch UARTs, die in der Mitte eines Bits mehrfach, z.B. 3fach abtasten
-
Thread
Fragen zu AVR C
nach GND verbunden. Jedes Segment hat quasi seinen eigenen Transistor und die werden durch die einzelnen uC Pins gesteuert. Die Anzeigetechnik ist Multiplexing, der uC ist ein Attiny2313. Ich hab 2 konkrete Fragen zum avr-C, folgende Situation: 1) Ich wollte Taster per Interrupt einsetzen. Dazu
reseted. Dann hab ich die Loesung ohne Interrupts wie im Anhang verwendet mit der direkten PIN abfrage. 2) Ich wollte die 7Segmentanzeige an und ausmachen wollen per Taster. Also hab ich in meiner Pinabfrage folgenden Code ausprobiert, hier mal als Ausschnitt ausm Kopf zusammengereimt: [c] int
-
Thread
Probleme und Anregungen mit USART auf ATMega32
write_idx] = UDR;" in die IF-Abfrage rein nimmst, wird UDR beim Überlauf des Schreibindexes nicht in das Array übertragen! Schreib es besser so: [c] ISR(USART_RXC_vect) { if (write_idx < 200) { write_idx++; }
im gegensatz zum µC (16MHz) mit 19200baud recht langsam ist (19200/10Bit Wortlänge = 1920 Zeichen pro Sekunde). Daher warte ich je nach eingestellter Bautrate min. die Zeit von einem Zeichen + 20% bis ich zurück gebe ob
-
Thread
64Bit Senden, funktioniert zwar, aber wie kann mans effizienter gestallten?
ich versuche mir gerade eine Uhr zu programmieren. Im Augenblick steuer ich die LEDs für jede einzelne Sekunde über eine einzelne switch case Abfrage an. kleines Beispiel: [c] switch (sekunden) { case 1: SPI_MasterTransmit(0x01); SPI_MasterTransmit(0x00); SPI_MasterTransmit(0x00
Der folgende Code sollte die Anforderungen erfüllen: [c] uint8_t temp; uint8_t s = 1; for (uint8_t byte = 0; byte < 8; byte++) { temp = 0; for (uint8_t bit = 0; bit < 8; bit++) { if(sekunden >= s) temp += (1 << bit);
-
Thread
Einen ATmega 16 zum Arduino Standalone benutzen
ist super ;). Dazu noch 2 oder 4 Taster zusätzlich an den µC. Diese könnte ich über die anderen 4 analog-Eingänge auslesen.. Dann würde alles passen. Ich werde jetzt bei zeichelt nen neuen µC bestellen + ein bisschen Kleinkrams. Bin gespannt ob das alles funktioniert
über I2C erfolgen, nicht mehr mit der LiquidChrystal Library. Siehe auch: http://arduino.cc/playground/Code/LCDi2c > Außerdem möchte ich ein 4 Wege Joystick anschließen. > Die gegenüberliegenden Richtungen
-
Thread
Ideensuche für getriggerte Zwischenzeitmessung
danke schon mal. ich sitze jetzt gerade wieder dran... ich verwende ja den 90s8515. er hat einen 8bit-timer0 und einen 16bit-timer1. aber beide sind doch zu klein, um damit eine zeitmessung mit ms und s aufzubauen? wenn ich den 16bit-timer nehme, habe ich ja nur 2^16 verschiedene zeitstempel, oder?
ok, und was macht man am besten, wenn man eine 16bit oder eine 32bit-zahl über den uart schicken möchte? ich hab die zahl ja als unsigned int im c-code. wie bekomme ich die in 8bit-teile und danach auch wieder zusammen?
-
Thread
ADC direkt an den PC
PC einen UART. >Das kann nicht funktionieren. Natürlich funktioniert das. Man kann doch die einzelnen Leitungen der RS232 per Software setzen bzw. abfragen. Da braucht's auch keinen MAX232. Die meisten Schnittstelleneingänge erkennen 0 oder 5V als H oder L. Die Ausgänge musst Du halt für den ADC
einen UART. >>Das kann nicht funktionieren. > > Natürlich funktioniert das. Man kann doch die einzelnen Leitungen der > RS232 per Software setzen bzw. abfragen. Da braucht's auch keinen > MAX232. Die meisten Schnittstelleneingänge erkennen 0 oder 5V als H oder > L. Die Ausgänge musst Du halt für
-
Thread
STM32 I2C Probleme
_7bit; I2C_InitStruct.I2C_Timing = 0x00201D2B; I2C_Init(I2C2, &I2C_InitStruct); // init I2C2 // enable I2C2 I2C_Init(I2C2, &I2C_InitStruct); I2C_Cmd(I2C2, ENABLE); RCC_AHBPeriphClockCmd
mein STM32 tatsächlich ein I2C-Signal aussendet. Da die Bibliothek so abstrakt ist, kann ich nicht nachvollziehen welche genauen Signale überhaupt versendet werden, und wie ich einzelne Bits schicke etc. Ich arbeite auch nicht
-
Thread
HDD Festplatte ATA IDE an AVR µC Mikrocontroller ATmega1284p Assembler - viele Fragen
Register schreiben 6. Den Command Code ins Command Register schreiben 7. Das Status-Register abfragen 8. Wenn BSY = 1, gehe zu 7 9. Das Daten-Register lesen (16 Bit!) 10.Das Status-Register lesen 11.Wenn DRQ = 1 ist, dann gehe zu 9 12.fertsch! Nun zu den ersten Fragen: - wie muss Sector
keinen Geschwindigkeitsverlust haben. So machst du dir nur das Leben schwer. Bit Bang geht auch in C gut und schnell. Ja dein "wait BUSHY" ist auch sehr lustig.
-
Thread
Brauche logische Hilfe bei Problemansatz
Schon mal was von Bitfeldern gehört. also z.B. [c] typedef struct { uint8 Bit0:1; uint8 Bit1:1; uint8 Bit2:1; uint8 Bit3:1; uint8 Bit4:1; uint8 Bit5:1; uint8 Bit0:1; uint8 Bit0:1; }Bitfeld1; [/c] kann ma auch ganz
auch die notwendigen Umrechnungskonstanten für die einzelnen ADC Kanäle unterbringen. Nur mal so als Hinweis, wozu man die Struktur zu noch so allem ausnutzen kann um das Programm zu vereinheitlichen. [C] struct ChannelDescription { char Caption[20
-
Thread
Nachhilfe in C
aber ungewöhnlich scheint die Erfahrungen nicht zu sein) folgende Erfahrungen gesammelt: Die einzelnen Befehle, selbst Konzepte wie verschiedene Schleifen, Abfragen usw. sind kein großes Problem und recht schnell für sich erlernt und viel wichtiger auch verstanden. Das ganze aber zu einem Programm
man sich zur Not helfen lassen, den Rest am besten selber üben, oder (wegen der Motivation) an einem C-Lernkurs (gibt es auch Online) teilnehmen. Vorschlag: C in Linux üben, oder mit dem Watcom Compiler (32 Bit, Protected Mode) in aktuellen Windowsversionen. Jörg W. schrieb im Beitrag #7729840:
-
Thread
STM32: Bitbanding für Arrays?
)) | (value << bit); }[/c] Ist dann sogar portabel und hängt nicht vom Bit-Banding einer spezifischen Hardware ab. Wenn du C++ nutzt, kannst du auch einfach std::bitset nehmen.
) #define bb_offs(array) ((unsigned)(array) - RAM_BASE_BYTES) #define bb_bit(array,bit) bb_ram[bb_offs(array) * 8 + (bit)] bb_bit(ee_fat,123) = ... if (bb_bit(ee_fat,123)) ... [/c]
-
Thread
Java auf AVR Gesperrt
automatisch abhängige Klassen mitübersetzen? > Ich bin in der Tat kein Java-Profi, sondern eher der C-Guru. Ich hab keine Ahnung. Ich würde auch lieber Suns JDK nehmen, aber es gibt davon keine 64Bit-Version. > Und wegen des Bootloaders: Ich ersetze den Asuro Bootloader, der ist > das speziell
Warum vier Bit? Naja, ich hatte die Pins frei und wusste wie's geht. Es ist aber überhaupt kein Problem, auch 4 Bit vorzusehen und dann in native_io.c per #ifdef LCD_4BIT auch passenden 4-Bit-Code vorzusehen. Das
-
Thread
STM32F4 Taster
SystemInit(); initApplication(); do{ if (GPIOA->IDR & 0x0001) { GPIO_ResetBits(GPIOD,GPIO_Pin_15); } else { GPIO_SetBits(GPIOD,GPIO_Pin_15); } } while (1); return 0; }[/c] Keine Vermutung ist, das irgendetwas mit GPIOA->IDR & 0x0001 falsch
Hallo 12V DC, hier Auszug aus Code: [c] if (GPIOA->IDR & 0x0001) { debug_printf("PIN PD15 ON\n"); GPIO_SetBits(GPIOD,GPIO_Pin_15); } else { debug_printf("PIN PD15 OFF\n"); GPIO_ResetBits(
-
Thread
Eisenbahnsteuerung mit Atmega16
einen AVR als >Slave zu verwenden! Komisch. Atmel AppNotes: AVR311: Using the TWI module as I2C slave AVR312: Using the USI module as a I2C slave AVR315: Using the TWI module as I2C master Am besten erstmal an der Quelle suchen. MfG Spess
>>Slave zu verwenden! > > Komisch. Atmel AppNotes: > > AVR311: Using the TWI module as I2C slave > AVR312: Using the USI module as a I2C slave > AVR315: Using the TWI module as I2C master > > Am besten erstmal an der Quelle suchen. > > MfG Spess Vielen Dank. Das habe ich
-
Thread
Problem AM-Empfänger konstruieren
/* wait */ } data_received_1 = SPDR; PORTX |= _BV(SELPIN); /* deactivate /SEL */ [/c] U. U. musst du mehr als nur diese 16 Bit rausschieben, beispielsweise zum Lesen des FIFOs. In dem Falle interessiert sich der SPI-Slave typischerweise nicht dafür, /welche/ Daten du ihm schickst
Sorry, ich programmiere vor allem deshalb in C, weil ich keinen Assembler mehr debuggen möchte. ;-) Eins fällt mir sofort auf (und das ist einer dieser typischen Fehler, die einem der C-Compiler abgenommen hätte …): [avrasm] SPIS: ;Abfrage
-
Thread
interrupt-reihenfolge und timingproblem für pic16fxxx
In diesem Fall wird 65536 zu anzahl0 addiert. zu INTCONbits.T0IF: Wie man bei deinem Compiler einzelne bits abfragt musst du wissen, mein Code ist für den C18
pic_ler schrieb im Beitrag #3548941: > Wie ich das Bit abfrage muß ich natürlich noch > rausfinden, aber ich weiß jetzt, was ich machen > muß. [c] if((INTCON&0b00000100)&&(timerwert < 30)) [/c] So sollte es ziemlich sicher funktionieren.
-
Thread
assember
temp, LOW(RAMEND) out SPL , temp ldi temp, HIGH(RAMEND) out SPH , temp ;Port C zum Eingang machen: ldi temp,port_als_eing out DDRC,r17 ;PORT D zum Ausgangmachen: ldi temp,port_als_ausg out DDRD,r17 Abfrage: ;Abfrage der PINs an Port C sbis PINC
Warum soll "jmp Abfrage" beim Mega16 falsch sein? Bei Portc beachten, dass das JTAG-Interface einzelne Bits des Ports blockiert. Dafür gibt es aber das Bit JTD in einem der MCU-Steuerregister. Übrigens: Doppelklick
-
Thread
Einfacher Check ob mehrere Tasten gedrückt sind
Port ? Was ist das......... Tatzenparallelschaltung ? Sind dann alle gleichberechtigt und nicht einzeln bestimmbar. Lösung : Tatzenmatrix mit mehereren Ports oder Abfrage der Tatzenauswirkung(en)
Du die Tasten am Mikrocontroller angeschlossen hast. Er wäre noch interessant zu wissen, welchen µC Du einsetzt. Bei der Abfrage mittels Interrupt solltest Du unbedingt darauf achten, das der IRQ-Pin flankengesteuert und pegelgesteuert konfiguriert ist. Sonst kommt der µC aus dem Interrupt nicht
-
Thread
ADC Channelauswahl
liegt hier der Fehler? Ähm. Wenn du nur den Kommentar änderst, wird das den Compiler bzw. den µC nicht sehr beeindrucken. Ausserdem: Im ADMUX Register sind auch noch andere Bits. Unter anderem auch die Auswahl der Referenzspannung. Es wäre daher sehr günstig, wenn du beim Setzen der Kanalselektion
> while (!(ADCSRA & (1<<ADIF))) Das ADIF Bit abzufragen ist nicht so toll. Denn: Du musst dieses Bit auch wieder löschen, wenn du keinen Interrupt verwendest. Von alleine setzt es sich sonst nicht zurück. Besser ist es, das ADSC Bit abzufragen
-
Thread
Fragen zur Rekursion
Min-Wert und den Max-Wert soll ich dann in einem Long ausgeben. In diesem Long soll in den oberen 16Bit der Max-Wert und in den unteren 16Bit soll der Min-Wert stehen. Ich hab hier mal angefangen zu programmieren: [c] #include<iostream> using namespace std; //minmax long minmax(short array
[c]if( SchrittNach[x+1][y] )[/c] soll wohl eher heißen [c]if( SchrittNach(x+1, y) )[/c] oder kann man in C jetzt auch schon Funktionen als Array ansprechen? o.O
-
Thread
I2C (TWI) Sniffer mit AVR
Hi Peter, wenn ich das ganze richtig verstehe, dann liest der Sniffer den Datenstrom auf dem I2C-Bus mit. Da gibt es Start-, Stop- und andere "Bedingungen", also klare Steuerzeichen. Dazwischen kommen die Daten. Sofern ich weiß ob 8 oder 10Bit kommen, kann ich am Ende sagen: Hier haben wir folgende
Hab es nun selber geschafft! anbei die Version GCC für den ATTiny2313. Auch habe ich die I2C Erkennung etwas erweitert: Nach dem Start wird die Adresse um 1 bit nach rechts geschoben. Das "alte" erste Bit ist ja das Read/Write Bit. Dies wird nun auch angegeben. Schaut so schon ganz gut
-
Thread
SPI für verteilte Systeme
> Bei I2C wird die slew-Rate begrenzt und die Eingänge gefiltert. I2C zählt nicht, ist schnarchlangsam. Auch UART (grade bei den meisten uCs) ist sehr langsam.
die aus der Telegrafensteinzeit stammenden "Standard-Baudraten" verwenden, sondern solche, die der µC gut kann. Und dann waren z.B. schon mit den alten 8051 bei DMX512 lockere 250kBit/s drin.
-
Thread
ATtiny85 als ws2812b LED daten Weiche
So machens die WS2812-LEDs ja auch, nur daß deren serielles Protokoll extrem schlecht mit einem µC decodiert werden kann.
bei 16MHz > gerade mal 2 CPU-Zyklen. Ja. Und zufällig braucht das Codekonstrukt, was man zur Abfrage eines Pegelwechsels benötigt, auch gerade zwei Takte. > Ein µC jenseits der 200..300MHz schafft es vielleicht in handoptimiertem > Assembler. Nö, bei 200MHz braucht man sicher keinen handoptimierten
-
Thread
Hilfe bei Parallel-IO dringend (AVR)
[c] int main() { initport(); putSelPattern(getKeyNum (waitforKey())); while(1); return 0; } [/c] Was macht Dein Programm da? 1. Ports initialisieren 2. Auf Tastendruck warten, in
Nummer der gedrückten Taste um, so wie sie auf dem Evaluationsboard bezeichnet sind (niederwertigstes Bit entspricht der Taste 0, höchstwertiges Bit der Taste
-
Thread
Bascom Unterbrechung Befehl
ins Hauptprogramm. Aber ich möchte während dieser Prozedur einen Eingang bzw. eine Variable immer abfragen um diese (den Alarm) sofort zu beenden.
Capture-Interrupt, um den Beginn des Startbits zu erkennen und dann einen Compare-Interrupt, um die einzelnen Bits abzufragen. Den anderen Compare-Interrupt nimmt man für den Transmitter. Dann kann man in den Interrupts auch noch Puffer einrichten und dann mit einem Flag der Mainloop signalisieren, daß
-
Thread
Problem mit Variable in C
Vergleiche die einzelnen Elemente einfach separat: [code] if (tm.Hour = 12 && tm.Minute = 0 && tm.Second = 0) { ... } [/code]
c] So müsste es besser gehen
-
Thread
BASIC-Computer mit Mega32
Habe gerade dieses Projekt endeckt: http://www.ulrichradig.de/home/index.php/cpld/8bit_c_graka Vieleicht könnte man dieses Ding irgedwie and den Einchip-Computer anschließen. Hat nähmlich ne Menge Farben.
Sorry nicht ISP I²C meine ich
-
Thread
Binär Uhr Selbst Bauen
mit 47HCxxx Logik ICs > -in welcher Sprache macht man das am besten (habe schon kleine Erfahrung C oder ASM, da du Erfahrung mit C++ hast würde ich C sagen.
Register weiter, > dass es die Sekunden hochzählt? Das geht nicht. Zählen mußt Du in Software. [c] if( Bedingung ) sekunde++; [/c]
-
Thread
AVR braucht 7us-12us bis in Interrupts ausgelöst wird??
bedingten Sprüngen. Da ich es gerne genauer wissen möchte, wo kann ich deine Aussage für Atmel AVR 8-Bit µC wiederfinden ?
d.h. so lange die Register ausreichen. Bis auf die Temperaturumrechnung ist das auch nahezu reiner 8-Bit Code, entsprechend übersichtlich. Die Verwendung von Assembler war Vorsatz, ich wollte es so. In C wärs vielleicht klüger, keinen 2313 zu nehmen, wird sonst vmtl. knapp. Die Zentrale war in C/C++
-
Thread
Probleme bei der Usart initialisierung mit dem ATmega8515
AtMEGA: USART_Transmit: sbis UCSRA,UDRE rjmp USART_Transmit out UDR,r16 rjmp loop //16-Bit-Zähler mit Flankenerkennung... ... //Motorsteuerung //Abfragen der Schalter ... .. . ERZEUGT MIR FOLGENDEN FEHLERCODE: X:\Bla\BlaBla\AtMEGA8515\Programmname\Programmname.asm(65): error:
Spess53 schrieb im Beitrag #3308970: >> sbis r16, 0x03 ;If (R16, bit1 == 3) > > Ein Bit kann nicht 3 sein. Der nächste Befehl wird übersprungen, wenn > Bit3 von r16 1 ist. und der Befehl muss dann auch sbrs/sbrc heissen, wenn man auf einem Bit im Register prüfen
-
Thread
ATmega 8 hängt sich auf
zu machen brauchst. Lass es dir noch einmal eindringlich gesagt sein: Auf einem 8-Bit µC, wie einem Mega8, ist der Datentyp uint8_t oder int8_t immer deine erste Wahl! * das ist der Datentyp mit dem der µC am besten umgehen kann * alles andere erfordert mehr Aufwand als notwendig
nicht wirklich logisch) Das t ist für die Zehnerstelle das n für die Einerstelle.Ich brauche die einzeln um die Dtaen hinterher in den Uhrenbaustein zu schieben, will die Stellen leider einzeln haben. Meine Tastur habe ich jetzt wie folgt realisiert: [c] // --------------------------------------
-
Thread
Induktiver Positionssensor - Fragen dazu
habe, > wollte ich mich auch damit beschäftigen. Ich persönlich würde da zwar eher mit einem I2C-Temperaturfühler statt direkt mit einem 16 Bit I2C ADC Wandler anfangen - aber es gilt ja bekanntlich: viel Feind, viel Ehr ;-) By the way: auf Deinem Blockschaltbild hängt der Arduino an 5V. Wo
aber scheint wohl mit dem Speicher zu tun zu haben. Denn ob ich das innerhalb oder außerhalb der Abfragen anzeigen lasse, der Effekt bleibt. Das alles kann sowieso nicht so bleiben, weil ich sonst sicher nicht mit dem Speicher hin kommen werde. Natürlich unter 40%. [c]if (progress < 40) [/c]
-
Thread
Problem mit delay.h und Optimierungsstufe v. AVR Studio 4
einem Überlauf keine Angst, muss ich ehrlich gestehen :)! Ok, das mag passen. Hab jetzt nicht im einzelnen nachgerechnet. >> Hast Du die Fuses dafür auch richtig geändert? > Die Fuse CKDIV8 Genau die meinte ich, das sollte also auch passen. PS: Was mir grad noch auffällt: [c] if (Hour <= 4
auch durchblickt :)! Ebenfalls geändert :)! Komisch, dass ich es hier richtig gemacht hab^^: [c]if (_20_ms == 50) { Second++; _20_ms = 0; }[/c] ... schrieb im Beitrag #2265161: > Nur tust Du genau das nicht, Du togglest alle anderen Bits in > PORTB! Uh, da hab ich wohl den Vogel
-
Thread
Wie überwacht man die Einzelzellenspannungen aus in Serie geschalteten Akkus ?
Datenblatt richtig interpretiere. Kann natürlich sein das dies nur für das DIP-Gehäuse gilt. Um die einzelnen Zellen direkt zu überwachen ist wohl wirklich die beste Methode für jede Zelle einen eigenen Low-Voltage µC zu benutzen. Da ich mittlerweile auch der Meinung bin das LiFePO4 mit der Zeit driften,
3 18Bit-ADs ? Die sind dann so hoch auflösend, daß du gegen Masse messen kannst. 3x LiFePo sind max. 12V (geschätzt) bei 18Bit eine Auflösung von 0.0000457764V. Beispiel für AD wäre z.B. der MCP3421 bei Reichelt
-
Thread
Marderschreck Softwareproblem
"The Output Compare Register B - OCR1B from ATtiny15 is replaced with the output compare register C - OCR1C that is an 8-bit read/write register. This register has the same function as the Output Compare Register B in ATtiny15." aus dem Datenblatt würde ja dann eigentlich keinen Sinn machen - oder
Marders. :) Hey, gab es das nicht auch als deutschen Artikel? http://s2.quickmeme.com/img/2b/2b801c8b1404aff14b61e9432c86fb9aa43a20b5083b787d62d1570ded4bcaf3.jpg
-
Thread
Atmega kurzzeitig aus Kondensator betreiben - geht das ?
wie kommst du auf 70ms Zeit? Wenn ich rechne: Q= C*deltaU wobei delta U = 5V-2,7V = 2,3V ist und C=47uF, dann erhalte ich eine maximal zur Verfügung stehende Ladung von 1,08*10^-5C. Ich gehe mal davon aus, dass du während dem Betrieb mindestens 5mA
2 * C * Uc^2 = EL => C = EL * 2 / Uc^2 => C = 0,00025 VAs * 2 / (5 V)^2 => C = 0,00002 As/V => C = 20 uF Mir ist dabei völlig klar, daß ich einige Modellvereinfachungen vor- genommen
-
Thread
2x Atmega8 SPI Schaltung / Raspberry Pi - Atmega8 SPI Schaltung
led_blink(LONG_TIME); } _delay_ms(500); } } [/c] [c] ###### Slave ###### #ifndef F_CPU #define F_CPU 16000000UL #endif #include <avr/io.h> #include <avr/interrupt.h> #include <util/delay.h> #include "lcd.h" #define ACK 0x7E
, buffer, 10); _delay_ms(20); } } [/c]
-
Thread
Tiny2313 Probleme beim Compilen
hilfreichen antworter, ja ich habe mir schon gedacht das es an vista64 liegt.... wir hatten mit dem 89c5131 ein ähnliches problem das atmel keine vista64 bit treiber zur verfügung stellt... nunja ich hatte das in dem fall durch nen alten ISA slot embedded pc mit 266mhz gelöst... ich werde wohl mein
4 den wert 01h setze und zum ausschalten wieder 00h und den PINB nehme dann und dann über 20h abfrage also bit 5 ich vermute mal das PINx und PORTx aufem gleichen port nicht gehen @ Peter Stegemann ja nur mal soviel man bekommt ne kiste mit nem board in die hand gedrückt, dort ist ne anleitung
-
Thread
6502 Emulation auf AVR ?
Hallo, @Uhu Uhuhu: sicher? ;) Der 6502 (6510) wird im C64 mit rund 1MHz getaktet. Es stehen also maximal 16 Takte pro Befehl zur Verfügung. Der 6502 hat 3 8Bit-Register, davon 1 Akku und 2 Index-Register. Der Befehlsumfang läßt sich wohl zu 80% mit AVR-Befehlen
extMem abgeschaltet ist und man auf die Vorbelegungen des Ports aufpasst, allerdings muß ich für den "C64" sowieso 64k Ram ranhängen und dann müßte ich die SID-Adressen in Hardware ausdekodieren...). SID_E hängt am Toggle-Pin des 8Bit-Timers dran. SID_Reset braucht man nicht zwingend (PowerOn-Reset