-
Thread
PIC18F2553 firmware für SD Karte
der Suche nach freien Clustern auf großen (16,32 GB) Karten, da man worst case mehrere MB FAT einlesen muss bis man den Nächsten findet. Das dauert über SPI recht lange, da wird der RAM knapp. Und SD Karte an 5V Controller ist ziemlich bäh, weil man zwingend einen Pegelwandler braucht. Aber so
Suche nach freien Clustern auf großen (16,32 GB) >Karten, >da man worst case mehrere MB FAT einlesen muss bis man den Nächsten >findet. Das dauert über SPI recht lange, da wird der RAM knapp. Was soll diese Schwarzmalerei? FATfs hat exakt nur EINEN Sektorpuffer, wenn man nicht noch einen pro
-
Thread
Probleme mit LCD an PIC 16f887
C2ON ;Comparator 2 ist aus BANKSEL PORTA ;springe direkt zu Bank0 zum Register PortA CLRF PORTA ;Init PORTA BANKSEL ANSEL ;springe direkt zu Bank3 zum Register Ansel CLRF ANSEL ;setze PortA auf digital I/O BSF STATUS,RP0
----------- [code] $Region "Ein Zeichen aus dem LCD auslesen" LCD_GetChar: MOV LCD_Port,#00111111b CALL LCD_Pause_4ms SETB LCD_EN MOV A,LCD_Port SWAP A ANL A,#0F0h CLR LCD_EN MOV LCD_buffer,A NOP SETB LCD_EN MOV A,LCD_Port
-
Thread
"while(1)" will nicht so wie Ich
[c] #define F_CPU 1000000UL // 1 MHz #include <avr/io.h> #include <util/delay.h> int main (void) { DDRD = (1 << DDB0) | (1 << DDB1) | (1 << DDB2) | (1 << DDB3) | (0 << DDB4) | (0 << DDB5) | (0 << DDB6) | (0 << DDB7); PORTD = 0x00; //PortD
; PORTD = 0x00; //PortD zurücksetzen und keine Pullup's delay_ms(500); //Netzteil bedenk zeit //In undefinierten Zustand Tor öffnen if ((PIND & (1<<PIND5)) && (PIND & (1<<PIND6))) //Wenn PinD4=1 und PinD5=1 (Beide
-
Thread
Bits seriell einlesen und in Variable speichern.
verheimlichen. Ich steh gerade vor einem Problem. Und zwar möchte ich Bits die seriell an einem Port meines Atmega32 einlesen und diese in einer Integervariable speichern. Das Bitmuster ist 8Bit lang. Z.B 11010110 und jedes Bit liegt etwa 500ms am Pin des Controllers an. Die Zeit ist noch nicht festgelegt
soll? (Will sagen: Woher weiß das Programm, wann es mit dem Einlesen beginnen soll?) Vielleicht machst Du ja erst noch einige Programmierübungen am heimischen PC, bevor Du auf eine MC gehst. Bei Letzterem hast neben dem sicheren beherrschen der Sprachmittel noch
-
Thread
Registerbezeichnung
nennt man die Register R0-R31? Rechenregister. > Ich hab schon eine Seite gefunden da werden sie Ports genannt, wobei ich > mir das nicht ganz vorstellen kann... Die Steuerregister für die parallelen I/O-Ports sind eine /Teilmenge/ der I/O-Register.
genannten Register dienen dazu, dass die CPU etwas an die Peripherie ausgeben oder von der Peripherie einlesen kann (eben INPUT/OUTPUT oder kurz I/O). und Peripherie ist so ziemlich alles, inklusive Timer, I/O-Ports, serielle Schnittstellen, im AVR-Fall auch das EEPROM. SFR und I/O-Register sind im Prinzip
-
Thread
Jamara 9g Servo
Die Spannung am Servo passt auch soweit, ich habe sie gemessen. Nun zum Programm: [c] #include <avr/io.h> #include <util/delay.h> int main(void){ DDRE = (1 << DDB2); PORTE &= ~(1<<PB2); //ausgang low while(1){ PORTE |= (1<<PB2); //ausgang high
geht das direkt am Port des avr ? Oder brauchts da einen Transistor / Treiber dazwischen ?
-
Thread
Serielle Daten in Tastaturanschläge verwandeln
WinWord. Oder fertiges Programm: ftp://support-datalogic.de/ADC/HHS/06.Verschiedenes/Windows_COM-Port_KBD_Umleitung-v1.3g.pdf
einfach vom Tastatur-MC 8051 den UART-Mode 0 genommen. Ich sehe auch kein Problem, mit 2 IOs des AVR das PS/2 Protokoll nachzubilden.
-
Thread
Bits einlesen über PORT (dsPIC33fj12gp202)
Guten Tag, ich versuche bei meinem dsPIC33fj12GP202 über einen Pin Spannungspegel digital (einfach low=0 und high=1) einzulesen. Ich wollte dies für einen Pin so lösen: C-Code: (...) TRISBbits.TRISB1=1; //PIN als Input konfigurieren x=PORTBbits.RB1; //Wert des Pins speichern (...) Jedoch möchte er nicht das Bit was am Pin anliegt speichern bzw. speichert es als low ab. Das Ziel ist es einen 1-Wire-Sensor, dessen low jedoch etwas mehr als GND ist (weiß nicht was nun konkret low bzw high für den PIC bedeutet), auszulesen. Nur scheitert es an dem lesen des Pegels. Ich
-
Thread
STK500 Testprog funzt in C funzt nicht?
Du musst anstelle von KEYPORT natürlich KEYPIN einlesen. Sonst funktioniert gar nichts. Eine andere Sache ist, dass das C-Programm etwas anderes macht als das Assembler-Programm. Im Assembler-Programm werden die Bits vom Port einzeln abgefragt, während
<< 0))){} [/c] macht das, was im Assembler-Code vorgesehen ist. Ansonsten schau bitte mal ins [[AVR-GCC-Tutorial]].
-
Thread
welchen Microcontroller? - 8x8x8 LED-Cube
erstmal mit einem 3x3x3 oder 4x4x4 anfangen? Da kommst du ohne Schieberegister usw. aus wenn du einen AVR mit genügend Ports nimmst. Gleich nen 8er ist schon heftig. gruß cyblord
/ turn off all floors ROM_GPIOPinWrite(GPIO_PORTA_BASE, 0xFC, 0); ROM_GPIOPinWrite(GPIO_PORTE_BASE, 0x03, 0); delay(0xDF); // load the storage registers from the shift registers ROM_GPIOPinWrite(GPIO_PORTE_BASE, STCP, STCP); ROM_GPIOPinWrite(GPIO_PORTE_BASE, STCP, 0);
-
Thread
kann man einen mikrocontroller übertakten?
AVR-Empfindlichkeit @Benedikt, @Olaf: Meine AVRs laufen immer mit einem externen 10kOhm Widerstand an Reset. Ich habe noch keine AVR-Abstürze erlebt, auch nicht im EMV-Labor. Gruß, Michael
Taktfrequenz nicht hinzubekommen. Allerdings kann ein ARM auch Code aus dem RAM ausführen, was ein AVR per se nicht unterstützt (mit Ausnahme der USB-AVR-Modelle, die gar kein Flash-ROM haben).
-
Thread
Servo delay board
Hardware (AVR) erfordert auch ASM-Wissen, da der AVR kein C kann. Er kann nur Maschinencode, der 1:1 in ASM übersetzt werden kann. Und da ich AVRs direkt an der Hardware programmiere, ist für mich ASM der leichtere
man >> trotzdem Servos anschließen. Man kann das PPM-Signal natürlich aus dem Programm und vom Port entfernen. Da hier kein Sender stören kann, kann der ADC auch schon vom Impulsbeginn an arbeiten. Dann ist der Merker (PPM-Port) zur Erkennung des Impuls-Status nicht mehr erforderlich. Natürlich
-
Thread
Byte verschieben und mit Eingang auffüllen.
registers, the value of single bits can be checked by using the SBIS and SBIC instructions. die port register bits lassen sich alle in einer struct exact mappen und ansprechen! viele kennen auch die avr gpioX register nicht und wie diese für flags eingesetzt werden. eure code size kann ich leicht
checked by using the SBIS and SBIC > instructions. Ich habe von der Programmiersprache C (in der avr-gcc Variante) geschrieben, nicht von diesen Registern. > die port register bits lassen sich alle in einer struct > exact mappen und ansprechen! Das ist aber etwas ganz anderes, als die Zeile
-
Thread
Hargassner Pelletheizung Betriebsdatenerfassung
Ich habe den WiPort (bzw. den Segor-Bausatz) verwendet, weil ich kein langes Kabel vom Heizungsraum zum PC legen wollte. Der WiPort liest die PS2332-Schnittstelle des Heizkessels aus und schickt die Datan via WLan an den
COM-Port und die Baudrate auf 19200 eingestellt wird, der Rest hat soweit gepasst. Ev. Noch eine andere Port Nummer, da viele Browser die Port Nr. 23 aus Sicherheitsgründen nicht weiterleiten.(die Freien Port
-
Thread
WinAVR, ATMEGA128: Eingangspins miteinander vergleichen
Hallo, ich programmiere zur Zeit einen ATMEGA128 mit WinAVR in C. Dabei muss ich zwei Pins eines Ports miteinander vergleichen. Ich weiß allerdings nicht, wie ich einzelne Bits einlesen kann. Bis jetzt hab ich den kompletten Port abgefragt und dann das entsprechende
Wieso liest Du das Port zweimal? XOR vergleicht. input_a = PINE; if(!(((input_a>>1)^input_a)&0x40)) ..... Cheers Detlef
-
Thread
[C++] Paralleler Zugriff auf Variable und einige Fragen zu C++ <=> Homepage
findest genug Beispiele im Netz. Google > einfach nach JSON. > > Zeno Werde mich da mal einlesen, danke!
server var server = http.createServer(handleRequest); //Lets start our server server.listen(PORT, function(){ //Callback triggered when server is successfully listening. Hurray! console.log("Server listening on: http://localhost:%s", PORT); }); [/c] das stammt von hier, aber andere
-
Thread
Bascom I2C Eeprom
============ ' =========== Für 24C256 EEprom ===================== ' 8MHz Quarz ' LCD auf Port B , ' $regfile = "m32def.dat" $crystal = 8000000 Das war's dann: Verarsche Dich selbst!
Write_eeprom Wait 1 Eeprom_anz = 7 ' 7 Zeichen einlesen Eeprom_adr=&H0005 ' Ab Adresse 5 Gosub Read_eeprom ' Nur "ist ein" einlesen Print Eeprom_data End '####
-
Thread
SPI Slave 16 E/A mit Schieberegistern
und 16 digitale Ausgänge einließt/ansteuert. Der Slave soll möglichst gleichzeitig Daten an MISO einlesen und an MOSI ausgeben. Die üblichen Port-Extension Lösungen, mit 74HC595 und 74HC165 scheinen das ja nicht zu erfüllen (siehe hier: http://www.mikrocontroller.net/attachment/1483/SPI_74HC595.pdf),
>Ich brauche eine "saubere" Lösung, Eine ganz "saubere" Lösung wäre, einen AVR mit vielen Pins zu nehmen und über der/die/das eingebaute SPI anzusprechen.
-
Thread
Pulslänge mit Hilfe eines Timers messen, klappt nicht...
im Simulator vom AVR-Studio sauber durch, eben genau so wie es oben steht. Nur auf dem µC hängts dann, hat jemand ne Idee, worans liegen könnte? Die Source hängt im Anhang... Danke schonmal für Eure Hilfe, Grüße,
Schau mal hier: http://www.hanneslux.de/avr/mobau/index.html speziell das hier: http://www.hanneslux.de/avr/mobau/fr_2313a/2313fra.html http://www.hanneslux.de/avr/mobau/fr_2313a/2313frd.html ...
-
Thread
Tastenabfrage bei Menüführung - Ideenblockade
schonmal! Ich muss die trotzdem erstmal komplett verstehen! Habe mir grad schon alles mögliche zum AVR im Internet gesucht, um zu sehen, was was bedeutet mit den Ports. Was ich zum Beispiel nicht verstehe: [c] #define REPEAT_MASK (1<<KEY1 | 1<<KEY2) [/c] und KEY0 ist definiert zu 0, KEY1 zu
und KEY2 zu 2 Das hat mit AVRs speziell nix tun. Das sind ganz normale Makros. Es wird der ganze Port eingelesen (Port B in diesem Fall: PINB -> AVR-spezifisch) und KEY1/KEY2 sind einfach nur (sprechende) Namen für die Eingänge (C allgemein). > Soweit ich mir das jetzt angelesen hab, heisst das beim
-
Thread
74HC4067 Nachfolgeschaltung?!
dann z.B. 256 Ausgänge und 256 Eingänge kein Problem. http://www.mikrocontroller.net/articles/AVR-Tutorial:_Schieberegister Peter
verdwenden, da ich ja jeden Eingang direkt ansprechen kann, ohne dass > ich ein ganzes Bitmuster einlesen muss, damit ich weiß welchen Pegel ein > einziger Eingang hat. Ist aber aufwendiger. Das SPI arbeitet bidirektional, d.h. wenn man 4 Bytes rausschiebt, kann man gleichzeitg 4 Bytes einlesen.
-
Thread
ADE7758 via SPI
in etwa so ? [c] char ADE7758_read8bit(char reg) { char ret=0; _delay_us(10); SS_PORT |= (1<<SS_BIT); SS_PORT &= ~(1<<SS_BIT); spi_master_transmit(reg); _delay_us(10); ret = spi_receive(); SS_PORT |= (1<<SS_BIT); _delay_us(10); return ret; } [/c]
SS_PORT &= ~(1<<SS_BIT); // slave select low spi_master_transmit(reg); data_msb = spi_master_transmit(0); (...) data_lsb = spi_master_transmit(0); SS_PORT |= (1<<SS_BIT); // slave select high [/c]
-
Thread
Flashboard mit Bascom, wer hat erfahrung?
Flashboard von Elektor experimentieren. Als erstes wollte ich an dem atmel 89s8252 einfach mal mit dem Port 1.2 als eingang den Port 1.0 schalten, an dem hängt eine LED. Die LED leuchtet immer, auch wenn ich den Port 1.2 auf masse lege. wo liegt der fehler in dem programm? Do If P1.2 = 1 Then P1.0
das bascom für die at's, tiny's und mega's, aber vllt. gilt das auch für die 89er's) muss man einen port so einlesen: if PinA.1 = 1 then... und so den port beschreiben: set PortA.2 oder reset PortA.2 es ist möglich, dass es in deinem bascom-compiler anders gehandhabt wird dann gilt das natürlich
-
Thread
Fröling Heizungssteuerung auslesen.
ich die mitgeschriebenen Daten: Mein Aktuelles Testprogramm sieht so aus. #include <avr/io.h> #include <stdlib.h> #include "lcd.c" #include <stdarg.h> #include <stdlib.h> #include <avr/io.h> #define F_CPU 3686400UL #define UART_BAUD_RATE 9600 void initUART(void) {
Berichte bitte ob es funktioniert. Ich habe auch diesen Thread eröffnet -> Fröling P2 S3100 und AVR-NET-IO Kannst ja mal nach suchen. Grüsse aus Hessen!
-
Thread
Einlesen von analogen Daten mittels Raspberry Pi/µC
Hallo zusammen und zu Beginn erstmal frohe Weihnachten. Ich versuche aktuell (erstmal in der Theorie) zwei Platinen miteinander zu verbinden. Zum einen den Raspberry Pi mit seinen GPIO Pins und zum anderen die ELV Lichtorgel 12V 3-Kanal (Schaltplan www.hed-radio.com/pdf/bausatz/elv/Lichtorgel_12V_3-Kanal.pdf). Nun möchte ich im Grunde folgendes erreichen: die Tiefen/Mitten/Höhen möchte ich mit 3 Pins vom Raspberry Pi verbinden, sodass ich in einem Programm z.B. alle 10 ms die Ports abfragen kann, ob diese gerade high oder low sind. Ich habe bereits nach Antworten zu meinen nun folgenden
-
Thread
LCD über 74*595: Busy-Flag?
Lösung war, die 8 Datenbits aber Du wolltest ja ohnehin den 8bit Mode verwenden Auch wenn Du das Einlesen per Shiftregister oben ausschließt, für graphische Darstellungen mach es schon Sinn alle 8 Daten- Leitungen wieder einzulesen, spart je nach Anwendung ordentlich Ram. Gruß Dominik
SPI ein. Also kein "hardware"-SPI, ich mach das "zu Fuß". Nachdem ich SPI immer auf den Programmier-Port rausführe, und mir mal eine Platine samt AVR zerstört hatte (wegen irgendwelcher Nebeneffekte) meide ich SPI. > Allerdings dimmt man mit der OE-Lösung die Hintergrundbeleuchtung wenn > man diese
-
Thread
Algorithmus für Linefollower mit 5 Sensoren
fühlst. >Apropos: Über welchen Prozessor und damit welchen Assembler reden wir >eigentlich? AVR Assembler, Atmega 16 spess53 schrieb im Beitrag #1789442: > Wenn das alles ist, bist du bei ca. 0,1 von 100. Träum weiter. Spess, du bist aber der ärgste von allen^^ Grüße Bro
über den Analog-Digital-Converter eingelesen. Jeder an einen ADC-Pin und per Software abwechselnd einlesen. Was wür einen µC nutzt du denn? und was hat die Frage 32bitµC oder nicht damit zu tun? Ein 8bit-AVR langweilt sich mit der Aufgabe zu tode. 5x AD-Wandlung, winzig kleines bisschen rechnen, neue
-
Thread
PWM über 2 Potis
. ==> vergiss den AVR , das kann der nicht. Bei den Rahmenbedingungen bleiben dir jetzt 3 Möglichkeiten. 1. eine Softwarelösung mit Interuptgetriebenen Umkonfigurierungen des Timers. Hier musst du sehr darauf achten
für beide Potis. Erhöht die Schrittweite auf 4 µs, dann brauchst du einen 18 Bit Timer. reicht im AVR immer noch nicht. Eine Beschaltung der ADC die eine Nutzung der 10 Bit erlaubt, ist mit praktikablen Aufwand im Hobbybereich nicht umsetzbar.
-
Thread
ADC 0 und 1 springen
Hallo Ich habe ein atmega8 und habe ihn in c mit AVR Studio4 programmiert. Er soll eine Spannung am ADC0 und ADC1 Port einlesen und in der zweiten Zeile eines LCD ausgeben. Dies funktioniert auch wenn ich nur einen Wert anzeigen lasse. Sobalt ich
mit einem Multimeter messe ich aber 0,000V am Port dann sollte der ADC doch auch 0 anzeigen.
-
Thread
Ich brauche hilfe, um folgendes Programm entsprechend zu erweitern
[c] #include <avr/io.h> #define KEY0 (1<<PD2) #define KEY1 (1<<PD3) #define KEY2 (1<<PD4) #define LED0 (1<<PD5) #define LED1 (1<<PD6) int main() { DDRD = LED0 | LED1; for(;;){
1.(einfach) den Port in eine Variable einlesen 2. und die definierten zustände abfragen, 3. else alles aus 4. dann neu einlesen (loop)
-
Thread
GPS RGM-2000 richtig an den PC anschließen
wrote: > @ alex > Nein, schließe deinen RX-Pin des Atmegas nicht einfach an den TX-Pin des > ComPorts an! Lies dir mal die Frage von alex genau durch. Er hat nirgends etwas von einem Com Port geschrieben... @alex Ja, das geht. Die 3-3,3V sind etwas an der Grenze, werden aber im Normfall von einem AVR als high erkannt. TX von dem Modul kannst du also problemlos direkt an den AVR anschließen. Da nirgends spezifiziert ist, ob RX 5V tolerant ist, schadet ein Widerstand von ein paar 100 Ohm als einfacher
-
Thread
AVR Tiny2313 Pinzustand PB3(OCI) in ISR abfragen
Hallo zusammen! Ich habe folgendes Probelm. Und zwar weiß ich nicht, wie ich den Zustand eines bestimmten Pins innerhalb einer ISR abfrage ... bzw. ich weiß nicht warum es nicht funktioniert. Es handelt sich explizit um den Pin PB3(OCI) eines ATTiny2313. An IRs nutzte ich den Capture-, Match-, sowie den Timer1-Overflow-IR. Ich möchte jetzt innerhalb der Cap-ISR den Zustand meines Ausganges (PB3(OCI)) abfragen um entsprechend reagieren zu können. Genau diese Abfrage funktioniert aber nicht. Andere Pin-Zustände in der ISR abzufragen klappt hingegen. Ich stehe z.zt. voll auf dem Schlauch :/ ... Vllcht
-
Thread
Beipsiel für: FTDI mit Atmel-uC
"Warum verwendest Du nicht gleich die PC-Soundkarte?" dem muss ich hier mal zustimmen der AVR kann die 15Khz grade so halbwegs in 10bit erreichen eine Soundkarte kommt mit 16 bit und mit glück 96Khz daher ebenso gibts genug programme zum frequensgang messen + anzeigen der AVR ist
programmieraufwand ist eher auf dem PC und dort gibts wie gesagt schon genug ... zumal du mit dem AVR nicht an die auflösung rankommst wie mit jeder beliebigen soundkarte
-
Thread
SPI MISO erkennt falsche Werte bei höherer Geschwindigkeit
Disable_global_interrupt(); INTC_register_interrupt( (__int_handler) &pdca_int_handler, \ AVR32_PDCA_IRQ_0, AVR32_INTC_INT0); INTC_register_interrupt( (__int_handler) &pdca_int_handler, \ AVR32_PDCA_IRQ_1, AVR32_INTC_INT1); /* First disable all interrupts */ SENSOR_SPI
Die Funktion mit der ich die Daten per DMA in einen Puffer einlese habe ich noch vergessen: [c]void spiRBuffCam(volatile uint8_t *buffAddr, uint32_t sizeOfBuff) { spi_selectChip(&AVR32_SPI1, SPI_CS_CAM1); portENTER_CRITICAL(); { pdca_enable_interrupt_transfer_complete
-
Thread
Attiny85, suche Möglichkeit zur Kommuikation/Daten auslesen
um direkt an eine serielle SS des PCs zu gehen. Das geht auch mit dem Tinyx5. - parallel an den Ports (beim Tinyx5 hat man dann leider nur 5 Bit) Ich hab mir mal mit einer dreistelligen Anzeige und einem Mega8 eine Hilfe geschaffen, die mir parallel ausgegebene Daten eines µC-Ports anzeigt; wahlweise
dass keine ungenutzten Variablen wegoptimiert werden und die Größe/Anordnung bei der Übernahme von AVR zu AVR unverändert erhalten bleibt [c] struct EepData { uint16_t sollwert; uint8_t oscal; float aref; }; // in einer Funktion dann: uint16_t sollwert = eeprom_read_word(offsetof
-
Thread
RF01 und RF02 433 MHz Funkmodul
Ich habe nur kurz in Deinen Source geschaut: holst Du die Betriebsspannung für den RFM aus einen AVR-Port? Qwnn ja, was soll das? Die RFM können etliche Milliampere Impulse erzeugen und haben kein Verständnis für instabile Betriebsspannungen. Zum Stromsparen haben die einen PowerDown-Mode, da reicht
Michael U. schrieb im Beitrag #4386986: > holst Du die > Betriebsspannung für den RFM aus einen AVR-Port? Qwnn ja, was soll das? ...jetzt direkt vom Labornetzteil. Bringt nichts. Sendet immer noch Schrott. c-hater schrieb im Beitrag #4387046: > Nein, das tust du wahrscheinlich nicht. Was du
-
Thread
8-Kanal IR-Fernbedienungs-Bausatz IRK8
hin einen Port zu triggern ist eigentlich ein Kinderspiel, mit dem festen Willen und dem Ziel vor Augen sollte man das mit ein paar Stunden einlesen hinbekommen. Bedenke aber, dass du einen Programmieradapter
http://www.hanneslux.de/avr/pollin_ir8/index.html ...
-
Thread
PIC18 -> NUR AN1 Analog sonst alle digital
der PIC18 25K20 das Problem nicht mehr. Alternativ: wenn AN0 ein Eingang ist: Einfach den Pegel einlesen ;-). Gruß H
heisst das entsprechende Register ADxPCFGx Aus Datenblatt PIC24HJ64GP202 bit 12-0 PCFG<12:0>: ADC Port Configuration Control bits 1 = Port pin in Digital mode, port read input enabled, ADC input multiplexer connected to AVSS 0 = Port pin in Analog mode, port read input disabled, ADC samples pin voltage
-
Thread
AVR läuft instabil / Interrupts deaktivieren sich?
macht etwas im Spielgeschehen. Als Eingabe benutze ich einen handelsüblichen Joystick: Anschluss PortC 0 und 1 X und Y Achse mit jeweils 100k Pulldown, Port C 2 und 3 die Buttons 1/2. PortC 0 und 1 werte ich per ADC aus. Dazu gleich ne weitere Frage: Kann ich trotz aktiviertem ADC ganz normal per in temp, PORTC den Port einlesen (dann halt nicht die ADC Werte sondern in dem Fall für die Buttons)? Damit hab ich auch noch Probleme, die sind allerdings erstmal egal. Zurück zum Hauptproblem: Das Programm läuft einige
-
Thread
ATmega8. Umbau als 2GHz Frequenz-Logger
verbunden) 13 DB6 14 DB7 Anstelle des LCD-Moduls möchte ich die empfangenen Frequenzen in den PC einlesen und (mit einem selbstgeschriebenen Basic Programm) grafisch darstellen bzw. loggen. Die Datenverbindung könnte zum Beispiel durch den seriellen Port oder durch den Druckerport geschehen. -Muss
1 + Pin 13 sind Inputs)(2,12 Master Reset)(Pin 6+8 sind Outputs) Pin8 geht am AVR zu Pin 11,Pin 12 geht am AVR zu Pin 3 PS: Der IC 74HC00 ist ein Quad Nand mit je 2 Inputs (Gehäuse DIP14)
-
Thread
Alle 16 Analogeingänge des ATxmega128A1 nutzen??
dem einen Pin mal von dem anderen. Kann jemand vielleicht einen nützlichen Tipp geben?? #include <avr/io.h> unsigned char Analog_PortA_Pin1, Analog_PortA_Pin2, Analog_PortA_Pin3, Analog_PortA_Pin4, Analog_PortA_Pin5, Analog_PortA_Pin6, Analog_PortA_Pin7; unsigned char Analog_PortB_Pin0, Analog_PortB_Pin1, Analog_PortB_Pin2, Analog_PortB_Pin3, Analog_PortB_Pin4; int main (void) { ADCA.CTRLA = 0b00000001; // ADC aktivieren ADCA.CTRLB = 0x00001100; // unsigned mode 8Bit
-
Thread
Datenleitung, Ausgang oder Eingang ?
änderst jeweils nur das eine Bit, das geändert werden soll? Mach es doch mit DDRD |= 1 << DDD7; //PortD.7 als Ausgang DDRD &= ~(1 << DDD7); //PortD.7 als Eingang Das Einlesen in var geht so nicht (PIND7 ist nur ein Makro). Und das Bit solltest Du dann maskieren, um den Zustand der anderen Pins, den
Wo ist der Nachteil? Indem man mit DDRxy statt PORTxy steuert, kann man auch einen AVR-Port per open collector steuern. Nichts anderes macht man beispielsweise bei OneWire oder auch bei I2C "zu Fuss".
-
Thread
Projekt : viele kleine zu einem groß Projekt, brauche Infos
Ziel kommst, auch wenn Dein Code nicht optimal sein sollte. Wenn Du meinst, mit irgendeinem ARM oder AVR32 besser zurecht zu kommen, dann bitte. Da kann ich Dir dann aber keine Hilfe mehr geben. Bei AVR und USB-Host wäre der AT90USB1287 (im Prinzip ein Mega128 mit USB) Dein Weg. Ob das dann am Schluss
über I2C oder einen vierten SPI. Nichts, was furchtbar viel Rechenleistung braucht. Ein PIC32 oder AVR32 oder Cortex M3/M4 sollte das problemlos schaffen. fchk
-
Thread
Atmega32 unterschiede
Mega gibts immer folgende Fragen: Fusebits richtig gesetzt (CPU-Takt) ? JTAG deaktiviert (wegen PortC) ?
allerdings sehr plausibel an. > > Der Mc funktioniert einwandfrei, jedoch funktioniert mein LCD an Port C > nicht. > Wie also kann ich die JTAG deaktivieren? Fuse Bit umstellen. Die Fuse heist JTAGEN http://www.mikrocontroller.net/articles/AVR_Fuses
-
Thread
Problem mit Interruptvektoren ATmega2560
ein oder andere Aktion. Kurzum: 2 Interrupts möchte ich haben, hier mein Code: [c] #include <avr/io.h> #include <util/delay.h> #include <avr/interrupt.h> /*Für Delay-Header*/ #ifndef F_CPU F_CPU = 16000000UL; #endif /*Variablen für ISR*/ uint8_t intPortB; uint16_t intCounter;
verstanden habe) ein: [c] /*Für Delay-Header*/ #ifndef F_CPU F_CPU = 16000000; #endif #include <avr/io.h> #include <util/delay.h> #include <avr/interrupt.h> [/c] Abermals danke! Beste Grüße Andreas
-
Thread
schaltplan ok? (+/- 5v netzteil, verstärker regelung, userinterface)
liegt, die den Transistor ansteuert Woraus entnimmst Du das? Ich lese im Datenblatt: "The I/O ports of the AVR are immediately reset to their initial state when a reset source goes active." Alles was nach dem Reset passiert ist unter meiner Programmkontrolle, also wenn der Transistor Basisstrom
ansteuert > Micha H. schrieb: > Woraus entnimmst Du das? > Ich lese im Datenblatt: > "The I/O ports of the AVR are immediately reset to their initial state > when a reset source goes active." Und? Nichts substanzielles dazu zu sagen?
-
Thread
Projekt Microcontroller
überschaubares Projekt. Allerdings IMHO bzgl. der Elektronik auch herausfordernd! Ich würde einen AVR dafür nehmen und in C programmieren. Zum AVR gibt es hier und anderswo viel Infos (Tutorials und Forum) und zu AVR/C gibt es freie Entwicklungstools, haufenweise Pläne für Hardwareaufbauten (Targetboard
beim myAVR gibts noch ne Lochrasterplatine für die zusazdinge wie fotodiode und so die man an den erweiterungs-port des myavr anbschließne kann... irgendwo im myavr forum hatte ich auch bilder gesehen wo das alles
-
Thread
Suche Mikrocontroller
, da kannst du einfach Daten auf den USB-Stick schreiben. Der kann auch gleichzitig deine Daten einlesen und speichern. MFG Falk
Speicher über SPI dazu. Oder schaust dir mal beim ATmega64 die Speichererweiterung an. (siehe SRAM im AVR-Tutorial auf dieser Seite) 2.Vorschlag: Nimm nen ATmega64 und verwende beide RS232-Schnittstellen. Den FTDI-Chip (RS232-Eingang) steuerst du über einen Port und nen Software UART an. (kannst
-
Thread
Einzelbild von analogem Videosignal digitalisieren
die Sekunde sondern ein Bild alle 1 oder 2 Sekunden. Idee war die Folgende: Schneller ADC mit AVR und SRAM dran. Schneller AVR steuert ADC und lässt diesen direkt ins Memory schreiben (also AVR mit parallelausgang). Nach den 20ms für das Bild sollten dann alle Daten digital im Speicher vorliegen
mit nem AVR wird man bei einem Vollbild nichts: Der ist dafür zu langsam. Guck (google) mal nach avrcam.
-
Thread
Tiny13 als Taktgenerator für Verfuste Controller
independent on the value of DDRxn. Note that the SBI instruction can be used to toggle one single bit in a port. MfG Spess
schnell, das ist Quatsch. Ein NOP braucht man nur dann, wenn man den gleichen Pin sofort wieder einlesen will, z.B. beim Qtouch. Beim AVR werden die Eingänge im vorherigen CPU-Takt gelatcht. Ohne NOP liest man also den Pinzustand von vor dem Setzen. Peter