-
Thread
AVR Ethernet Platine
auch AD0-AD7 und ALE inklusive am CPLD. Gruß Hagen
0x8000-0x7FFF ebenfalls 0x0000-0x7FFF vom externen eingeblendet. Also doppelt und man hat nun über Addresse 0x8000 Zugriff auf den Shaddow RAM der normalerweise über das Registerfile + internes SRAM verdeckt
-
Thread
128kByte Ram an AVR
- 4x 32kB die umgeschaltet werden (und wo sollten die dann liegen? besser von 0000-7FFF oder ab 8000?) Die anderen 32kB bleiben frei für Memory Mapped I/O - 1x 32kB die immer fest eingeblendet sind (zb von 0000-7FFF) und 3x 32kB die abwechselnd eingeblendet werden können (ab 8000) Welche Aufteilung
erfolgt tatsächlich über den CPLD. Der CPLD enthält ja den nötigen Addresslatch um die unteren 8 Bit AD0-AD7 zu latchen. In dem Moment wo ALE des AVR's aktiv wird, speichert der CPLD diese unteren Addressen. Zusätzlich führt er die Addressdekodierung durch. D.h. er setzt seine 3 CS~, Chip Select Ausgänge
-
Thread
Speicher > 2 MBit an AVR Zeitprobleme
264 Byte zu beschreiben. Macht einen maximalen Datendurchsatz von 13200 Byte/s. Karl benötigt etwa 8000 Byte/s laut seinen ersten Posting. Es ist also noch genug Luft. Laut seinem zweiten Posting braucht er aber 16000 Byte/s. Da reicht der Schreibdurchsatz von einem Dataflash schon nicht mehr. Matthias
Ich muss alle ms 8 Byte daten wegschreiben. Aber in der ms muessen die Daten auch noch aus dem AD Wandler geholt werden. Deshalb ging ich mal so spontan von 500us Schreibzeit aus. Den rest der Zeit kann man ja dann auf das Sammeln der Daten verschwenden. Momentan ist es so geplant das ueber
-
Thread
Einfache Sensortaste
Eingang wurde mit der internen Bandgap-Referenz verschaltet, der negative mit dem Multiplexer des AD-Wandlers. So ist es möglich bis zu 8 Kanäle mit dem mega8 Auszuwerten. Die Sensorflächen wurden jeweils mit 1nF entkoppelt, und mit einem 22MOhm Widerstand aufgeladen. Die Messung geschieht zyklisch
. stecke ich einen richtigen kondensator anstatt der sensorfläche an, geht die Zählervariable bis 8000 oder so. Nur mit der Sensorfläche gehts knapp bis 17. Das wesentlcihe Problem sit dass die Änderung minimal ist wenn man den sensor berührt. so 2-3 Schleifendurchläufe mehr. (aber auch nicht immer).
-
Thread
externes SRAM
CE-Pin. Je nachdem welcher genommen wurde, liegt das RAM von 0-7fff(für den low-aktiven) oder von 8000 bis ffff(für den high-aktiven).
Ok, hat sich erledigt. Du hattest Recht. Wenn ich das SRAM bei Base 0x8000 anlege, dann funktioniert es. Nur ist dann natrülich die Adresse 0x260 nicht im externen Ram *patsch* Danke nochmals!
-
Thread
Drehregler an uC - geht das?
mein Mikrocontroller anschließe (muss der an die ADC-Pins und an wie viele oder muss ich noch nen AD/DC-Wandler zwischenschalten, etc)? Ich würde mal tippen, das Ding hat 2 Anschlüsse an den uC, einen für Dreher in Rechtsrichtung, einen für Dreher in Linksrichtung, oder so. Und bei nem Tastendruck könnte
beschäftigen, d.h. wenn du "int32_t" benutzt auch wissen, was das bedeutet. 2^32 Minuten sind nämlich 8000 Jahre ! Warum willst Du so weit zählen ? Wenn Du ein long nach char abschneidest und dann wieder nach long, das muß ja schief gehen ! Bei Zuweisungen in ein anderes Zahlenformat, muß man
-
Thread
LTC1257 - Problem mit Ansteuerung (SPI)
Typ Word (16 bit) wird in C meist ein unsigned int verwendetet. Bsp.: Die Daten die ich vom uC zum AD Wandler schicken will nenne ich: zumAD. unsigned int zumAD; und schau dich mal in der Hilfe deines Compilers um, ( Bit level access to the I/O Registers )
0x8000 DACDATA(0x8000) LEVEL ist TRUE, daher (DACIN & ~PORTB.1) DACIN (sollte meiner Meinung nach nach dem init auf 0000 0100 sein, wenn ich 0000 0000 einsetze kommt das selbe raus) 0000 0100 0000
-
Thread
Codegrößenproblem
(also den Teil) der die Float's verwendet eher total popelig ist... es geht darum einen über einen AD Wandler eingelesenen Wert als Spannung auszugeben mit einer Nachkommastelle. Aber wie gesagt das ist nur ein kleiner Teil des Codes... beim Rest hab ich schon drauf geachtet kein Float zu verwenden
aber trotzdem reicht mein Flash noch nicht aus, obwohl das Programm eigentlich nix anderes tut als 6 AD Wandler werte auszulesen, diese zu Lookupen (blödes Wort) und das Ergebnis des Table lookups auf einem LCD Display auszugeben... dazu kommt dann noch eine kleine Glättung der Werte weil die Sensoren
-
Thread
WAV-Dateien
kann ich die WAV-Dateien erstellen oder konvertieren? 8 Bit und Mono reichen erst mal. Samplingrate 8000 oder 11050 sind auch machbar. Wie ist es mit dem rechtlichen Hintergrund, wenn ich Töne einer CD nehme? Darf man eine kurze Tonfolge von x Sekunden frei verwenden oder sind CDs tabu. Das Gerät ist
Tests hatte ich noch eine Stereo-Datei. Hört sich irgendwie nicht gut an. Für die Filterei hinter dem AD-Wandler habe ich einen einfachen Tiefpass verwendet. Reicht halt aus. Als Verstärker noch einen TDA7053 und die Lautstärke ist auch ok. Vielleicht hat ja noch jemand eine Idee, wo man einzelne
-
Thread
CRC-16 Prüfsumme (serielle Übertragung)
So gehts auch: int crc16_table[256] = { 0x0000, 0x1189, 0x2312, 0x329b, 0x4624, 0x57ad, 0x6536, 0x74bf, 0x8c48, 0x9dc1, 0xaf5a, 0xbed3, 0xca6c, 0xdbe5, 0xe97e, 0xf8f7, 0x1081, 0x0108, 0x3393, 0x221a, 0x56a5, 0x472c, 0x75b7, 0x643e, 0x9cc9, 0x8d40, 0xbfdb, 0xae52, 0xdaed, 0xcb64, 0xf9ff
= ((uint16)(*(data++)) << 8); for (i = 0; i < 8; i++) { //0x8000 = binary 1000 0000 0000 0000 if ((m_crc_value & (uint16)0x8000u) > 0) { m_crc_value = (m_crc_value << 1) ^ m_crc_polynomial_16; } else { m_crc_value
-
Thread
Pic-C-Compiler
der gerade einen sehr guten Pascal Compiler für die PICs entwickelt und der hat mittlerweile so ca. 8000 Zeilen Pascal Code (ja der Compiler ist selbst in Pascal geschrieben ;) ) - ich kann mich jetzt auch vertun aber ich glaube soviel wars... Den vertreibt er dann allerdings nicht kostenlos :-/
vorstellen kann - ist egal, du willst ja eh I2C benutzten also einfach nen paar I2C Portexpander und AD/DA Wandler dran und fertig iss. Zum Editor: Also mein Universaleditor unter Kleinweich Betriebssystemen den ich eigentlich für alles einsetzte (bis auf Java - da nehm ich Eclipse) ist Proton. Hat
-
Thread
4094 oder 74164
eine fast komplette Hameg-Laboreinrichtung mein Eigen nennen darf, fehlt mir noch der Inhalt für ein 8000er Leereinschubgehäuse. Und als Freund von Minimal-, Modul- oder Antiquitätenlösungen MUß es mit 7 Seg-Anz. bestückt sein. ;) btw: Die Apotheke hatte nur noch die HCTs. Wird aber auch gehen.
ich hatte versucht, dir mit einer kleinen Ironie deine eigenen Argumente ad adsurdum zu führen, aber offensichtlich hast du das zwar nicht erkannt, aber zumindest gemerkt, das das himmelschreiender Mist ist. Die 10 Lampen glimmen so vor sich hin, und bei den LEDs ist es nicht
-
Thread
Akku Ladetechnik
gibt an Pin 16 die Akkuspanung kodiert und mit 2400Baud aus - wie macht der das wohl - so ganz ohne AD-Wandler? Unterschiedliche Lademethoden sind auch unterschiedlich gut oder schlecht für die Lebensdauer der Akkus.
behaupte immernoch das es nichts besseres gibt. Die Geräte von ELV kosten ein Schweine Geld. ALC 8000 Fertiggerät Artikel-Nr.: 68-568-46 229,00 MfG Sandro , CCS9310B2
-
Thread
External memory schreiben lesen??
Der AVR GCC übernimmt dann die ganze Aufgabe bzw. setzt Adresse, latched und schreibt die Daten an [AD0..7] Das war mir nicht ganz klar als blutiger C neuling. Gibt es denn nict irgendwo eine gute Beschreibung wo ich mir den ganzen Kram anlernen kann? Als neuling steht man ganz schön blöd vor zeilen
Bei IAR C ist es möglich auf die Adresse auch ohne Pointer zuzugreifen: char byte@0X8000; byte = 0x80;
-
Thread
Hilfe: Welcher Microcontroller ?
für Deine Anforderungen. Während der Impulslaufzeit von 1ms kann ein mit 8Mhz getakteter Atmel ca. 8000 Befehle ausführen und dementsprechende Reaktionen auszulösen. Ich meine auch, das zum Thema Servo, Fernsteuerung usw. hier schon mal was gepostet wurde. Welchen Controller Du benötigst, kann ich auch
High-Tech-Computerfernsteuerung relativ wenig ... Mal 'ne Frage zur Taktfrequenz: Wieviel Taktzyklen braucht denn der AD-Wandler ? Gruß Andreas
-
Thread
C Anfänger: PWM Signal auslesen Gesperrt
0x8E; // Global enable interrupts #asm("sei") // Select ADC input 0 ADMUX=0; // Start the first AD conversion ADCSR|=0x40; // All the job is done by ADC interrupts while (1); }
noch 1 Stelle sehen Also: Her mit dem Trick 1Ag( g ) = 1000 Ag(mg) zauber zauber...... Ag(mg)=8000*(Egal)/2T2 Ag(mg)=(8000*(2T1-T2))/2T2 Ag(mg)=(4000*(2T1-T2))/ T2 Aber 4000*1000= 4*10^6 -> also signed long int T1=250 -> -2000mg T1=500 -> 0g T1=750 -> +2000mg Das solls denn dann mal sein...
-
Thread
Kennfeld ablegen? Intern o. extern?
Hallo, danke für deine Ausfürhliche Antwort. Aber ich komme bei 8000 U/Min auf 133 Zündungen pro Sek=7,5mSek pro Umdrehung/360=20,8 µSek pro 1°. Ich will aber ne höhere Genauigkeit. Also werde ich einen zweiten AVR verwenden der mir pro Grad 5 Impulse liefert. Und der
Hi Thomas, Bei 8000 U/min hast Du 16.000 Zündungen / min (ein Viertakter zündet jede 2. Umdrehung * 4 Zylinder = (8.000 / 2) * 4 = 16.000). Das sind je Sekunde 266 (oder 233 bei 7000 U/min). Wenn Du einen Prüfstand hast