Gefunden für adc eeprom - Zum Elektronik Forum |
| 1 - Hilfe:Klartraum-Maske -- Hilfe:Klartraum-Maske | |||
| |||
| 2 - AVR-Assemblercode von Atmega88 auf -8 umstricken -- AVR-Assemblercode von Atmega88 auf -8 umstricken | |||
| Hi!
Ich möchte mir ein Elektorprojekt nachbauen. Dafür wird ein Atmega88 verwendet, ich habe aber nur den Atmega8 hier. Ich habe schon etwas über die Unterschiede gefunden, blicke aber trotzdem nicht ganz durch. http://www.gaw.ru/pdf/Atmel/app/avr/AVR094.pdf Z.B. meckert der Compiler über "out TCCR0A,r16" Ist irgendwie klar, der Atmega8 hat ja nur einen Ausgang vom zweiten Timer etc. Aber wie schreibe ich das um? Geht das überhaupt, oder war der Atmega88 _statt_ dem 8er nötig? Wäre schön, wenn mir jemand weiterhelfen würde
Code : | |||
3 - Parametersuche für AVR? -- Parametersuche für AVR? | |||
Offtopic :Meine Frage wurde also gefunden. Nur leider nicht gelesen.
Scheinbar schlagen hier meine 3 Probleme voll zu (siehe Signatur). Wusel_1, Jornbyte: Und wie bitte bekomme ich aus den Daten, die es bei Atmel gibt und ich von da in xls kopiere, die Abtastrate des ADC raus? Und die Doppelbelegung mit dem OC vom 16 bit Timer? Und die RC-Oszi-Taktrate? Wie? Etwa indem ich erst nach den oberflächlichen Werte was raussuche und mich dann durch Datenblatt und Pinout kämpfe? Also nochmal ganz langsam: Für irgendwas braucht man z.B. 11 normale DIO, davon 8 bit zusammenhängend an einem Port (also 1 Byte + 3 bit), 4 Single ended ADC, 2 komplementäre Ausgänge einer 8bit PWM, mit Pausenzeit 1 16 bit Input capture bei mind. 30MHz 1 externer IRQ 1 Hardware-I2C 20KB Flash, 800Byte Eeprom Also gibt man den ganzen Kram in eine echte parametrische Suche ein, und die sagt einem dann, dass a) man daf... | |||
| 4 - Benötige euren fachlichen Rat -- Benötige euren fachlichen Rat | |||
| Hallo
Also ich will mal die Idee, die sich offenbar herauskristallisiert hat etwas zusammenfassen, man möge mich korrigieren: Es gibt maximal 8 verschiedene Stecker und max 50 Buchsen. In jedem Stecker befindet sich nun ein Bauteil, mit einer Eigenschaft, das 8 verschiedene analoge Werte annehmen kann und irgendwie vom ADC eines µC ausgelesen wird. Dazu muss der ADC irgendwie auf die 50 Buchsen gemultiplext werden. Im Speicher des µC (oder einem externen EEPROM) befindet sich nun eine Tabelle, die die gemessene Eigenschaft auf einen Zahlenwert 'mapt'. Diese Tabelle lässt sich individuell programmieren um bei verschiedenen Versionen des gesammten Geräts unterschiedliche Zahlenwerte zu ergeben. Die Probleme liegen IMHO noch darin welche Bauteile in den Steckern verbaut werden und wie genau der Steckkontakt aussehen muss, damit er möglichst lange hält und nur 5mm Einbautiefe hat. Zu diesen Punkten möchte ich noch eine Idee ergänzen: Mechanische Kontakte sind nicht sehr geeignet für hohe Standzeiten, die Kontakte verdrecken, nutzen ab, kleine Jungs stopfen Kaugummi rein usw. Ich schlage deshalb vor ein berührungsloses System zu verwenden! Wie soll das gehen? Ganz einfach: Als 'Buchse' dient ein kleiner Permanentmagnet, um den eine Spule ge... | |||
| 5 - Winavr: Float -> LCD, brauche Beispiel -- Winavr: Float -> LCD, brauche Beispiel | |||
| Hi,
einen "Guten Abend" hätte ich auch gerne gehabt, aber Du trägts ja zu einer guten Nacht bei. Danke! Ich würde gerne auf Dein Angebot der Makefile-Erstellung zurückgreifen. Also, hier mein Code Code : /* ---------------------------------------------------------------------------- * "THE BEER-WARE LICENSE" (Revision 42): * <joerg@FreeBSD.ORG> wrote this file. As long as you retain this notice you * can do whatever you want with this stuff. If we meet some day, and you think * this stuff is worth it,... | |||
| 6 - Nein, ich will nicht richtig schreiben! Ich will nicht!!!!! (war: 3stellige Temp.Anzeige auf 7Se...) -- Nein, ich will nicht richtig schreiben! Ich will nicht!!!!! (war: 3stellige Temp.Anzeige auf 7Se...) | |||
| Als kleiner Denkanstoß: Du kannst den Ausgangswert des ADC zusammen mit den untersten zwei Bit eines Binärteilers an die Adresseingänge eines EEPROMs anschliessen. An die Datenausgänge schliesst du über einen Treiber die 7 Segmente der Anzeigen an, der Binärteiler wählt auch die aktive Anzeigestelle aus. Dann kannst du im EEPROM die Bitmuster für die Anzeigen ablegen, sogar so dass der Sensors linearisiert wird. ... | |||
| 7 - Real Time Clock IC an AVR -- Real Time Clock IC an AVR | |||
So hier ist gleich das ganze Programm. Das deswegen, weil ohne die Equates die ganzen Operationen unverständlichen wären. Die I2C Routinen sind nur die zwei kleinen Teile nach der Interruptroutine. Der Rest ist eine kleine Steuerung für eine Gabelstapler an dem ein paar Funktionen gegeneinander verriegelt werden mußten. Außerdem sind noch ein paar Spielereien wir Blinklicht und Stundenzähler mit dabei (der leider aber nur im seriellen EEPROM steht und nicht ausgelesen werden kann ). Das Projekt war leider zu früh zu Ende!
Aber ansonsten kann ein Anfänger viele Sachen darin finden, neben der I2C Kommunikation ist eine einfache Interruptbehandlung für einen Timerinterrupt und die ADC-Abfrage vorhanden, genauso wie die in diesem Thread schon angesprochenene Zeitverzögerungen oder weiter unten dann ganz normale Bitverknüpfungen. Code : | |||
| 8 - Stereoanlagearator mit Hysteresespannung -- Stereoanlagearator mit Hysteresespannung | |||
| Der 339 ist ja nur ein IC. Gibts auch als SMD.
Allerdings hat er 14 Pins und du musst noch etwa 4 bis 5 Widerstände dazutun. Wenn das zu gross ist, dann nimm den ATtiny13 und lass dessen ADC den JOB verrichten. Die Schwellen kannst du im EEPROM ablegen. ... | |||
| 9 - Signal mehrerer Fotodioden (Lichtintensität) mit µC auswerten (Signalkonditionierung) -- Signal mehrerer Fotodioden (Lichtintensität) mit µC auswerten (Signalkonditionierung) | |||
| Moin, "Plan" ist übertrieben.
Das Layout ist bei meinem Umstieg von Windows zu Linux leider flöten gegangen. War alles sehr klein. Es ging um Audiosignale, die digitalisiert wurden. Ein Teil habe ich mal hier aufgeschrieben. Ein Timer wird so initialisiert, dass bei jedem Positiven Vergleich ein Interrupt ausgelöst wird. In diesem wird dann der Wert eingelesen und weiterverarbeitet. Dieser Teil dürfte uninteressant sein, da er auf mein Problem zugeschnitten ist. Es wurde abwechseln immer zwei Kanäle (ADC0 und ADC1) gesampelt. Code : ... | |||
| 10 - Lichmessun und Aufzeichnung? -- Lichmessun und Aufzeichnung? | |||
| hallo,
kannst du µC programmieren? hast du umfangreiche kenntnisse über die protokolle die beim datenaustausch mit SD und MMC karten verwendet werden? kennst du dich mit FAT32 (oder FAT16) ausreichend aus um das im µC zu implementieren? alles in allem ist das ein sehr umfangreiches projekt. ich würde empfehlen einen datenlogger zu kaufen. obs den mit deinen anforderungen gib, weiss ich aber nicht. und wenn das auch zu teuer ist, einen adc nehmen und den mit einem PC auslesen (wenn nötig µC dazwischen). das erleichtert den programieraufwand vom µC ganz erheblich. wenns aber doch ein eigenbaudatenlogger werden soll empfehle ich als speicher ein EEPROM oder ein RAM zu nehmen. und das ganze dann seriell an den PC zu übertragen. mfg wulf ... | |||
| 11 - Internes ATmega48 EEPROM schreiben/lesen -- Internes ATmega48 EEPROM schreiben/lesen | |||
| Danke für die schnelle Antwort.
habe meinen Code so angepasst: Code : eeprom_write_byte ( 0x000A, ADC_Result ); //ADC Wert in EEPROM Speichern --> Adresse 0x000A Code : | |||
| 12 - ATMega 32 INT2 löst nicht aus -- ATMega 32 INT2 löst nicht aus | |||
| Hallo!
Ich habe hier eine Schaltung zusammengebaut mit der ich eine PC AT Tastatur an einen ATMega32 anschließen möchte. Jetzt wollte ich erstmal den INT2 einschalten und mir die Flanken des Taktsignals zählen lassen. Jedoch löst das Clock-Signal der Tastatur am INT2 keinen Interrupt aus. Schaltung ist wie folgt: Am Controller hängt ein LC-Display an Port A, das funktioniert soweit einwandfrei. An PORT B hängt eine Lochrasterplatine mit der Anschlussbuchse für die Tastatur und 2 LEDs und zwar folgenderweise: PB7 = LED rot PB6 = LED grün PB5 = NC PB4 = NC PB3 = NC PB2 = KEYBOARD Clock = INT2 PB1 = NC PB0 = KEYBOARD Data Ich habe jehweils einen 10kOhm Pullupwiderstand an KEYBOARD Data und KEYBOARD Clock. Schaut auch sehr gut aus auf dem Oszilloskop. Hab auch direkt am Controllerpin PIN3 gemessen, das Clocksignal kommt bis zum µC durch. Jetzt wollte ich den INT2 einstellen, hab mich da auch soweit ans Datenblatt gehalten. MCUCSR Bit6 = 0 -> INT2 löst bei fallender Flanke aus GICR Bit5 = 1 -> INT2 aktiviert SEI Befehl um I-Flag im SREG zu setzen hab ich verwendet. In der Interrupttabelle steht rjmp EXT_INT2 die sprungmarke existiert auch und wird mir RETI beend... | |||
| 13 - Tastaturcode -- Tastaturcode | |||
Oder was fertiges (ist alt)
.include 4433def.inc .def temp = r16 ; universalregister definieren .def keybdata = r14 ; kegister fuer keyboard daten .def keybparity = r15 ; keyboard parity counter .def keybcount = r18 .def status = r19 ; hier merken wir uns keycodes .equ break = 0 ; bit 0 vom keyb. status register -> breakcode folgt .equ shift = 1 ; shift gedrueckt?! .equ caps = 2 ; caps an/aus .equ alt = 3 .equ ctrl = 4 rjmp reset ; Reset Handler rjmp keyb_int ; IRQ0 Handler reti ; IRQ1 Handler reti ; Timer1 Capture Handler reti ; Timer1 compare Handler reti ; Timer1 Overflow Handler reti ; Timer0 Overflow Handler reti ; SPI Transfer Complete Handler reti ; UART RX Complete Handler : RXCIE reti ; UDR Empty Handler reti ; UART TX Complete Handler reti ; ADC Conversion Complete Interrupt Handler reti ; EEPROM Ready Handler reti ; Analog Comparator Handler reset: ldi temp, RAMEND out SP, temp ; set stack pointer ; Port datenrichtungen setzen ; PD 2 | |||
| 14 - Probleme beim Programmieren mit STK500 -- Probleme beim Programmieren mit STK500 | |||
.include m8def.inc .org $000 rjmp init ;Program/Reset Handler reti ;INT0addr=$001 ; External Interrupt0 Vector Address reti ;INT1addr=$002 ; External Interrupt1 Vector Address reti ;OC2addr =$003 ; Output Compare2 Interrupt Vector Address reti ;OVF2addr=$004 ; Overflow2 Interrupt Vector Address reti ;ICP1addr=$005 ; Input Capture1 Interrupt Vector Address reti ;OC1Aaddr=$006 ; Output Compare1A Interrupt Vector Address reti ;OC1Baddr=$007 ; Output Compare1B Interrupt Vector Address reti ;OVF1addr=$008 ; Overflow1 Interrupt Vector Address reti ;OVF0addr=$009 ; Overflow0 Interrupt Vector Address reti ;SPIaddr =$00a ; SPI Interrupt Vector Address reti ;URXCaddr=$00b ; USART Receive Complete Interrupt Vector Address reti ;UDREaddr=$00c ; USART Data Register Empty Interrupt Vector Address reti ;UTXCaddr=$00d ; USART Transmit Complete Interrupt Vector Address reti ;ADCCaddr=$00e ; ADC Interrupt Vector Address reti ;ERDYaddr=$00f ; EEPROM Interrupt Vector Address reti ;ACIaddr =$010 ; Analog Comparator Interrupt Vector Address reti ;TWIaddr =$011 ; Irq. vector address for Two-Wire Interface reti ;SPMaddr =$012 ; SPM complete Interrupt Vector Address reti ;SPMRaddr =$012 ; SPM complete Interru... | |||
| 15 - FPGA Board im Selbstbau -- FPGA Board im Selbstbau | |||
Hallo Kekse-Vertilger Bevor man mit der Entwicklung eines EVA-Boards beginnt muss einem erst einmal klar sein, was man mit diesem Board machen will. Danach richtet sich dann die Peripherie, die mit auf das Board kommt: Ethernet-Phy oder Ethernet-MAC SRAM oder SDRAM Flash-EEPROM oder EEPROM LEDs Taster / Schalter Steckverbinder ADC / DAC ... FPGA Größe und Typ Erst wenn man weiß, was alles auf das Board kommt, kann man mit dem Planen des Netzteiles beginnen. Für digitale Schaltungseile sollte man Schaltregler einsetzen, wegen der Verlustleistung. Dagegen sollten analoge Schaltungsteile lieber mit einem Linearregler versorgt werden, um eine saubere Spannung zu haben. Die PLLs für die Taktgenerierung im FPGA sollten über Spulen (LC - Tiefpass) von der allgemeinen Logikversorgung entkoppelt werden. Bei dem FPGA muss man auch beachten, welche IO-Bänke welche IO- Standards unterstützen und wie sie dafür versorgt werden müssen (V_IO,V_Ref.). Von dem Netzteil für die Kernspannung (V_ core) werden besondere Eigenschaften gefordert. Je nach FPGA-Größe muss sie im Einschaltmoment einen größeren Strom liefern können, als im weiteren Betrieb (von ... | |||
| 16 - LCD TFT fujitsu 15er TFT -- LCD TFT fujitsu 15er TFT | |||
hmm.. jetzt hat sich das schätzchen ganz verabschiedet. dh. die betriebslampe leuchtet garnicht mehr, bild kommt auch keins mehr. allerdings werden adc und das eeprom? warm. der adc ist übrigens ein MRT Mascot V ist auch in irgendeinem Acer-monitor verbaut, allerdings lässt sich der google hit(PDF) zum service-manual nur noch über den cache aufrufen, und man sieht keine bilder. schade, denn da wurden mehrere bauteile und testpunkte genannt. Würde jemandem von euch ein besseres Bild vielleicht weiterhelfen mit zu helfen?;) danke, patrick ... | |||
| 17 - Zufalls-Oszillator, zur Nachahmung von Kerzenflackern u.ä. -- Zufalls-Oszillator, zur Nachahmung von Kerzenflackern u.ä. | |||
Nichts aufregendes. Lediglich hat der Autor zum Random Generator noch einen Tiefpassfilter und PWM hinzuprogrammiert, damit sich Helligkeit kontinuierlich ändert. Der PIC12C675 ist übrigens overkill und zu teuer für solche Anwendung, da er auch noch einen ungenutzen 10-Bit-ADC und 128 Bytes EEPROM enthält. Auch sein RAM liegt größtenteils brach. Der billigste Chip wäre gut genug, und man könnte auch die nicht beschalteten I/O Pins sinnvoller verwenden. ... | |||
| 18 - Timer im Atmel - wie benutzen? -- Timer im Atmel - wie benutzen? | |||
|
.include m8def.inc ;Pfad zur Include-Datei ggf. anpassen .def temp = r16 ;braucht man immer .org 0000 rjmp reset ;RESET RETI ; External Interrupt0 Vector Address RETI ; External Interrupt1 Vector Address RETI ; Output Compare2 Interrupt Vector Address RETI ; Overflow2 Interrupt Vector Address RETI ; Input Capture1 Interrupt Vector Address RETI ; Output Compare1A Interrupt Vector Address RETI ; Output Compare1B Interrupt Vector Address rjmp check ; Overflow1 Interrupt Vector Address RETI ; Overflow0 Interrupt Vector Address RETI ; SPI Interrupt Vector Address RETI ; USART Receive Complete Interrupt Vector Address RETI ; USART Data Register Empty Interrupt Vector Address RETI ; USART Transmit Complete Interrupt Vector Address RETI ; ADC Interrupt Vector Address RETI ; EEPROM Interrupt Vector Address RETI ; Analog Comparator Interrupt Vector Address RETI ; Irq. vector address for Two-Wire Interface RETI ; SPM complete Interrupt Vector Address RETI ; SPM complete Interrupt Vector Address reset: ;Stackpointer initialisieren ldi temp,low(RAMEND) out SPL, temp ldi temp,high(RAMEND) out S... | |||
| 19 - ic zum meßumwandlung -- ic zum meßumwandlung | |||
| eigentlich is es doch egal welcher pic, alle haben was du benötigst... oder ned?
alle haben den 10bit ADC, und alle haben EEPROM, leistungsfährig genug sind sie mit sicherheit auch etc.... | |||
| 20 - Countdown Uhr -- Countdown Uhr | |||
| Das ASM - Beispiel:
.include tutorial/uart/2313def.inc ;Pfad zur Include-Datei ggf. anpassen .def temp = r18 .def counter = r17 .def fbin = r19 ;Ausgangswert .def tBCDL = r19 ;Obere Dezimalstelle .def tBCDH = r20 ;Untere Dezimalstelle .org 0000 rjmp reset ; RESET =$001 ;Reset RETI ; INT0addr=$001 ;External Interrupt0 Vector Address RETI ; INT1addr=$002 ;External Interrupt1 Vector Address RETI ; ICP1addr=$003 ;Input Capture1 Interrupt Vector Address RETI ; OC1Aaddr=$004 ;Output Compare1A Interrupt Vector Address rjmp check ; OVF1addr=$005 ;Overflow1 Interrupt Vector Address RETI ; OVF0addr=$006 ;Overflow0 Interrupt Vector Address RETI ; SPIaddr =$007 ;SPI Interrupt Vector Address RETI ; URXCaddr=$008 ;UART Receive Complete Interrupt Vector Address RETI ; UDREaddr=$009 ;UART Data Register Empty Interrupt Vector Address RETI ; UTXCaddr=$00a ;UART Transmit Complete Interrupt Vector Address RETI ; ADCCaddr =$00b ;ADC Interrupt Vector Address RETI ; ERDYaddr =$00c ;EEPROM Interrupt Vector Address RETI ; ACIaddr =$00d ;Analog Comparator Interrupt Vector Address reset: ;Stackpointer initialisieren ldi temp, RAMEND out SPL, temp |
|
Zum Ersatzteileshop Bezeichnungen von Produkten, Abbildungen und Logos , die in diesem Forum oder im Shop verwendet werden, sind Eigentum des entsprechenden Herstellers oder Besitzers. Diese dienen lediglich zur Identifikation! gerechnet auf die letzten 30 Tage haben wir 17 Beiträge im Durchschnitt pro Tag heute wurden bisher 4 Beiträge verfasst 50 Besucher in den letzten 60 Sekunden alle 1.20 Sekunden ein neuer Besucher ---- logout ----su ---- logout ---- |