-
Thread
Programmer incl. neuem Code für Atmel AN910
Software (im AT90S2313) mit schnellerer Programmierung und Unterstützung für die neuen AVR Controller gibt es dort auch. Vielleicht eine Alternative für geplagte LPT-Port-Programmer-Anwender. Check it out... Ciao, Klaus
ich prüfe nochmal die Schaltung genau. Die Schnittstelle habe ich auch auf 115200 eingestellt. AVR Prog sucht wohl auch nach COM-Ports, denn mein Modem klickte leicht und dann kam der Fehler. Gruss A. Arndt
-
Thread
Atmega Taster einlesen und in Register schreiben funktioniert nicht wie geplant
Ich versuche gerade verzweifelt Taster an einem Port einzulesen und an einem anderen Port 1:1 wieder auszugeben. Der Taster soll als Schalter fungieren. Erstes drücken -> LED ein, zweites Drücken -> LED aus. Also XOR. hier der Code: [c]if ( ((
kein USI. Wo habe ich das bloss her? Ich muss mich verguckt haben. Das ist aber schon seltsam: ein AVR ohne I²C und ohne USI.
-
Thread
Portumschaltung mit AVR
Hallo, hier etwas was mich viel Zeit gekostet hat. Vieleicht hilft es jemand in der Zukunft. Ich brauche für eine Anwendung 4 serielle Schnittstellen. Ich habe einen ATMega32 und einen TL16C554 genommen. Lief auf Anhieb, den 554 benutze ich schon länger an einem ATMega128 wo aber der Bus benutzt wird. PortB vom ATMega32 ist der Datenport vom 554 und muss dementsprechend von Input auf Output und zurück umgeschaltet werden. Alles lief interruptgesteuert super bis ich ein 0xFF empfangen habe. Um die Sache abzukürzen, laut Datenblatt kann der Port nicht einfach von Input auf Output und umgekehrt
-
Thread
ATmega als "Ersatz" für MAX7219
mit einem Schieberegister als Hilfsmittel? (sowas wie ein 74HC595). Man bräuchte zwar einen ganzen Port zur Datenübernahme, aber sonst wäre es schon einen Entlastung für den AVR. LOAD könnte man per Interrupt auswerten.
AND-gatter auf SS* des avr und npcjh jeweils auf ein port, welches einen interrupt auslöst, wenn CS* low wird. damit kann der avr erkennen, welcher MAX7219 angesprochen wurde. wichtig ist noch rauszufinden, welcher spi mode
-
Thread
Z180-Stamp Modul
SIO und CTC bestückt, um der Z180-Stamp möglichst nahe zu kommen. ;) Takt kommt von einem der freien AVR-Ports, da man CLKO für die 4MHz CPU natürlich nicht nehmen kann. 2 CTC Kanäle erzeugen den Takt für die seriellen Schnittstellen. Der Input für diese Kanäle kann auch von AVR-Port geliefert werden.
Steckverbinder ? Wenn Platz für den Stecker vorhanden ist, warum nicht? > Weitere Wünsche ? Ein AVR-Port auf WAIT? Der Monitor könnte dann den Z80-Bus einlesen und auswerten (Singlestep für Arme). Für Siglestep bei voller Geschwindigkeit ;) müßte man aber WAIT mit MREQ und/oder M1 synchronisieren,
-
Thread
Erste Platine in Eagle Gesperrt
fehler gemeldet ... komisch Verstehe nicht ganz, wenn ich doch den taster drücke schaltet es den port auf high, somit kann ich was auslösen oder nicht? Habe das so eigentlich schon einmal ausprobiert... ist nur etwas her Die LDR möchte ich gerne über ADC einlesen PC0 ist doch ADC? Gruss Letter
schrieb im Beitrag #2530832: > Verstehe nicht ganz, wenn ich doch den taster drücke schaltet es den > port auf high, Richtig, aber was für ein Signal liegt am Port an, wenn der Taster nicht gedrückt ist? Florian Letter schrieb im Beitrag #2530832: > Die LDR möchte ich gerne über ADC einlesen PC0 ist
-
Thread
dcf77 Signal Einlesen. Atmega644
programmiert zu haben, der jede ms einen Overflow erzeugt und dann die ISR aufruft, PIN2 prüft und PIN 3 an Port D den Wert 1 zuweist, solange dcf77_sig den High-Pegel enthält. Leider zeigt sich aber keine Reaktion. Kann jmd. sehen, wo der Fehler liegt? #include <avr/interrupt.h> #include <util/delay.h>
Michael B. schrieb im Beitrag #4512701: > dcf77_sig = PIND2; Du möchtest bestimmt den Pinstatus einlesen. Ich glaube das muss so sein: dcf77_sig=( PIND & ( 1<<PIND2 ) )
-
Thread
Tastaturmatrix entprellen
dranhängen und EINEN Taster anschliessen. Den Taster auslesen und im Labview anzeigen lassen. [[AVR-Tutorial: IO-Grundlagen]] (ist zwar für den [[AVR]], zeigt aber wie man die Bauteile anschliesst.) Wenn das klappt und du wirklich verstanden hast wie es geht, dann kannst du dich an die Matrix machen
Fange klein an: 1.eine Taste einlesen 2.eine Reihe von Tasten einlesen 3.eine Matrix einlesen 4.Mehrfachdruck auswerten. Peter P.S.: Kann man nun unter Labview in C programmieren oder ist das ein ganz spezieller eigener
-
Thread
Attiny - Dimmen mit dem Rad
Ansteuerbausteine (quasi AD-Wandler) für 8 LED mit Spannungseingang. Finde gerade keinen, aber sowas an PortB (ist auf Stiftwanne kpl. erreichbar) als Byte einlesen wäre das einfachste. avr
avr schrieb: > Es gibt/gab doch Ansteuerbausteine (quasi AD-Wandler) für > 8 LED mit Spannungseingang. > Finde gerade keinen, aber sowas an PortB (ist auf Stiftwanne > kpl. erreichbar) als Byte einlesen
-
Thread
Relais summt (Atmega32)
als Ausgang > wie programmier ich das am geschicktesten? Ich wollte schon komplette Bytes an den Port anlegen, bzw. Zahlen wie 255 für alle Pins auf on. Aber gleichzeitig wollte ich an den ersten beiden Pins, also Porta.0 und Porta.1 etwas einlesen? Gibt es da eine Lösung? Portc ist für die Multiplexer
Tutorial, das ist sehr gut geschrieben und vermittelt das Grundwissen, das man braucht, um z. B. Ports zu programmieren.
-
Thread
Tasten abfragen am ATTINY13 mit Assembler
\ / vv am Port ausgeben [/code] oder benutze, wie die meisten, die für Bitoperationen vorgesehenen Befehle zum Bit-setzen, Bit-löschen, Bit-abfragen [[AVR-Tutorial]]
in r16, PIND ; an Port D anliegende Werte (Taster) nach r16 einlesen out PORTB, r16 ; Inhalt von r16 an Port B ausgeben rjmp loop ; zu "loop:" -> Endlosschleife [/C] Das funktioniert deshalb
-
Thread
Probleme Kommunikation mit COM-Port
bin dabei mir ein kleines Progamm schreiben, um mit dem PC über die serielle Schnittstelle mit einem AVR zu kommunizieren. Programmiersprache C++, Verwendeter Compiler Microsoft Visual C++ 4.2 (ich weiß, ziemlich alt). Betriebssystem Windows 7. Die Verbindung mit dem COM3-Port wird NON-OVERLAPPED
Natürlich, wenn du das genau so programmieren willst. In .Net kannst du aber der SerialPort Klasse ein Event werfen lassen, wenn Daten eintrudeln. Dort musst du dich dann nicht endlos drin aufhalten, sondern kannst die Daten einlesen, verarbeiten und die Methode dann wieder verlassen.
-
Thread
DS1820 Beispielprogramm in C für EasyAVR5 Board
Aha. Wie funktioniert denn das wohl bei AVR Studio 4.19 ?
anderen Pin versucht. Gleiches Ergebnis. Aber vielleicht das hier ? : c:\program files (x86)\atmel\avr tools\avr toolchain\bin\../lib/gcc/avr/4.5.1/../../../../avr/include/util/delay.h:89:3: warning: #warning "F_CPU not defined for <util/delay.h>" ../ow.c: In function 'ow_rd_rom': ../ow.c:110:15: warning
-
Thread
Atmega328 UART 1'000'000 Baud
den Zauber auch hier mal ansehen. https://github.com/Traumflug/Teacup_Firmware/blob/master/serial-avr.c
die Formel für das Baudraten-Register neu erfinden. Benutzt doch einfach http://www.nongnu.org/avr-libc/user-manual/group__util__setbaud.html
-
Thread
IRMP - Infrared Multi Protocol Decoder
// normal port operation, OC2A disconnected. #endif // __AVR... IRSND_PORT &= ~(1<<IRSND_BIT); // set IRSND_BIT to low #endif // DEBUG irsnd_is_on
6 // use PB6 as IR input on AVR [/c] irsndconfig.h [c] < #define IRSND_PORT PORTB // port D < #define IRSND_DDR DDRB // ddr D < #define IRSND_BIT
-
Thread
Fernbedien RC5 Empfänger
Habe soeben festgestellt, der Eingangspin muß immer Pin 7 eines Ports sein, damit der Compiler funktionierenden Code erzeugt. Woran das liegt, weiß ich nicht. Mein AVR-GCC.EXE ist von 21.09.2003. Peter
Hi! Ich habe den Source gerade erfolgreich (nochmal danke dafür) auf einem AVR 2323 eingesetzt. Der Eingang is Pin0. Geht problemlos (zum Glück, das Ding hat ja gar keinen Pin 7, auf irgend einem Port :) ) gcc version 3.3.1 aus WinAVR MfG Sebastian
-
Thread
Fehler im Unterprogramm - Verständnisfrage (Taster entprellen)
c] // *************INCLUDE *************** #include "Include.h" #include "globals.h" #include <avr/io.h> #include <avr/interrupt.h> #include <util/delay.h> #include <stdint.h> #include <avr/eeprom.h> // Prototypen uint8_t Taster_einlesen(void); void Taster_entprellen(void); int main(void
GlobalWertTaster = 0; // IO-Einstellen IO_DDR |= (1<<LED_Obergrenze) | (1<<LED_Untergrenze); IO_PORT |= (1<<TASTER_Obergrenze) | (1<<TASTER_Untergrenze); //endlos while(1) { uint8_t Taster_Status = Taster_einlesen(); if(Taster_Status == 1) IO_PORT ^= (1<<LED_Untergrenze);
-
Thread
Neues Terminal-Programm für Windows
Programmteile verkürzen, umordnen 2. Baudrate runternehmen 3. Flusssteuerung (RTS/CTS) 4. erst Befehl einlesen ,dann verarbeiten 5. Interruptgesteuerter UART Betrieb 6. Empfangspuffer vergrößern Nur so als Richtgrösse: Ich habe derzeit kein Problem auf einem AVR mit 8MHz über die UART mit 500kBit zu
Gibt es eine Möglichkeit, HTerm über CLI vom Port zu trennen bzw. zu verbinden? Würde es gerne schaffen, dass aus WinAVR erst HTerm trennt, dann mit avrdude geflasht wird und anschließend HTerm wieder verbindet. Dann muss ich nichts anklicken
-
Thread
STM32 Programming Reference
-------------- void initGPIO() { // initialize peripherals here //Activate red LED Port RCC->AHBENR |= RCC_AHBENR_GPIOEEN; //enable PORTE clock GPIOE->MODER |= GPIO_MODER_MODER9_0; //PORTE9 (LED red) is output } void initUSART(long baudrate) { long
-------------- void initGPIO() { // initialize peripherals here //Activate red LED Port RCC->AHBENR |= RCC_AHBENR_GPIOEEN; //enable PORTE clock RCC->AHBENR |= RCC_AHBENR_GPIOAEN; //enable PORTE clock GPIOE->MODER |= GPIO_MODER_MODER9_0; //PORTE9 (LED red
-
Thread
ALL-AVR-Programmer
mit Win7 64 Bit ausgerüstet und AVR Studio. Notebook AVR-Studio 5 Standrechner AVR-Studio 6.1 Ich hab auch schon verschiedene Firmenwar's ausprobiert (da man bei 6.1 die Firmenware 1.8 braucht) aber nie wird mein Uc erkannt egal
AVRDUDE kann ich ja mal versuchen erstmal Runterladen und dann einlesen :)
-
Thread
Welchen ATmega ?
[[AVR-Tutorial: Schieberegister]]
Taster und Reedkontakte kannst Du über eine Matrix (zB 5x5) einlesen. Da spartst Du schonmal einige IOs ein (du brauchst also nur 10 IOs). Für die Ausgabe verwendest Du hintereinander geschaltete Schieberegister am SPI-Port (3 Ausgänge: Takt, Daten, Ausgangsübernahme
-
Thread
Dip Schalter pinsparend einlesen?
[[AVR-Tutorial: Schieberegister]]
wäre auch eine Überlegung wert, benötigt für 16 Eingänge 4 Steuerleitungen + einen Ausgang, also 5 Ports des AVR.
-
Thread
PC Lüfter Drehzahl regeln
wirklich weiter gekommen. Ich wollte einen PC-Lüfter regeln in der Drehzahl mit einem Mikrcontroller (AVR). Mein Hauptproblem ist zunächst einmal die Regelung. Wie macht man so etwas? Die Drehzahl kann ich bereits einlesen über den ICP und auf einem Display ausgeben, das funktioniert soweit. Nur wie beginne
genau willst du eigentlich machen oder lernen? Die theoretischen Prinzipien der Regelungstechnik? Die AVR-Programmierung in C? Den technischen Einsatz eines AVR für eine Lüfterregelung? Oder geht es schlichtweg darum, einen PC-Lüfter möglichst einfach und kostensparend zu regeln? Gruß, Volker
-
Thread
Controllertypen: Blick über den Tellerrand
sequentiellem/ Lesen/Schreiben. Parallel mit dem üblichem Latch komme ich da auf folgende Rechnung (AVR8): Adresse an Ports ausgeben (2 Takte), Latch triggern (2 Takte), AD-Port auf Input (1 Takt) OE auf low (1 Takt) auf SRAM warten (1-2 Takte) Byte einlesen (1 Takt) OE auf high (1 Takt), AD-Port auf
schrieb im Beitrag #1842902: > Parallel mit dem üblichem > Latch komme ich da auf folgende Rechnung (AVR8): Adresse an Ports > ausgeben (2 Takte), Latch triggern (2 Takte), AD-Port auf Input (1 Takt) > OE auf low (1 Takt) auf SRAM warten (1-2 Takte) Byte einlesen (1 Takt) > OE auf high (1 Takt), AD-Port
-
Thread
Am PortB binär ausgeben mit C
>unsigned int i; unsigned char reicht. >#include <mega16.h> Sofern es sich sich um den avr-gcc handelt, sollte man AFAIR die "avr/io.h" einbeziehen. Hast du schon einen Blick ins avr-ggg-Tutorium geworfen? http://www.mikrocontroller.net/articles/AVR-GCC-Tutorial
DDRB konfiguriert den Port PORTB macht eine Ausgabe auf dem PORT PINB ist zum Einlesen des Ports gedacht Du mußt Dich nur an das Asm-Prog halten oder machen was ich geschrieben habe: > Also erst Datenrichtung setzen
-
Thread
Signal mit Timer erzeugen
Indem Du in der ISR den Port auf HIGH schaltest und den Timer anhältst...
) wird der Port (aber nur das gewünschte Bit!) einfach invertiert. Das geschieht durch Einlesen (in) des Ports, exor mit Hilfsregister, in dem das zu toggelnde Bit gesetzt ist und Zurückschreiben des Ports. Sollen
-
Thread
Poti mit ADC einlesen
Hallo, ich habe einen Atmega128 und am Analog-Port habe ich ein Potentiometer angeschlossen. So sieht mein Programmcode aus: uint8_t i; uint16_t result; ADCSRA = (1<<ADEN) | (1<<ADPS0)| (1<<ADPS1) | (1<<ADPS2); ADMUX = 3; ADMUX |= (1<<REFS0); ADCSRA |= (1<<ADSC); while(!(ADCSRA & (1<<ADIF))); result = 0; for(i=0;i<4;i++) { ADCSRA |= (1<<ADSC); while(!(ADCSRA & (1<<ADIF))); result += (ADCL + (ADCH<<8)); } ADCSRA &= ~(1<<ADEN); result >>= 2; Messen tu ich nur unsinn. Muss ich
-
Thread
Software Ethernet?
Ich hab einen AVR, der mit 10Mhz einen Bus abfragt. Das ergebnis gibt er an 8 Ports aus(den 1.Bit am ersten dann den nächsten am 2 etc.) Der IC soll parralel an diesen Port hängen. Wenn er jetzt auf der 1 leitung ein
Aber ich will doch gar net peer AVR einlesen. Sondern die Serielle verbindung(Ethernet) auf eine Parrallele verbindung umwandeln(RAM) ICh will quasi alle 1522Byte in den ramm schreiben und dann vom AVR auslesen. Als RAM hätte ich ein
-
Thread
Relaiskarte mit min 23 ausgängen und eingängen für den USB port
ja dafür muss ich dann ja vier USB ports benutzen was schon ganz schön viel ist zumindest für meine anwendung
Karl heinz Buchegger schrieb im Beitrag #1671281: > Ackere das AVR-Tutorial durch, mach Vorübungen, lies dich ein, Winfried J. schrieb im Beitrag #1671536: > Der AVR ATMEGA 32 ist in 4 wochen - 4 Monaten hinreichend erlernbar > > Programmiersprache C der
-
Thread
Drehgeber Problem
Kann es sein das der ATmega8 es nicht schafft , beides zu handeln also >LCD Ausgabe und Drehgeber einlesen. Das schafft der AVR schon. Die Frage ist, ob dein Programm dafür auch richtig geschrieben ist. Poste VOLLSTÄNDIGEN Quelltext als ANHANG. MFG Falk
Kannst du ausser Bascom noch was anderes benutzen? Sagen: wir AVR-Studio mit WinAvr?
-
Thread
port brav nach c Standard setzen
, bit, invert) \ PORT##port #define __IO_SET(port, bit, invert, state) \ if ( (invert) ^ ((state) ? 1 : 0) \ PORT##port |= _BV(PORT##bit); \ else \ PORT##port &= ~_BV(PORT##bit); \ }
Befehl zu deiner Funktion. Wirklich effektiv ist das nicht. [c] #define LED_PIN 3 // Pin 3 an Port x #define SET_BIT( BIT_ , PORT_) \ PORT_ = (PORT_ | (1 << BIT_)) void main (void) { SET_BIT(LED_PIN,PORTB); } [/c] Und jetzt die Quizfrage: Wieviel Code wird wohl hier erzeugt? ;-)
-
Thread
Warum USB Chip?
USB an sich, Plug'n'Play und 480MBit/s(?), ist eine tolle Sache, aber nicht im µC-Bereich (Kaliber AVR DIP). ftuezrj schrieb im Beitrag #2086405: > Sooo groß muss der µC auch wieder nicht sein, .... > > http://www.obdev.at/products/vusb/index-de.html > >>Runs on any AVR microcontroller with
triggered interrupt). Ja schon, aber eben doch größer. Und man muss sich in die Doku von dem Dingen da einlesen und steht beim Debuggen vor einem Haufen fremden Code. Wie gesagt, bei RS232 kann man ohne Probleme "from the scratch" programmieren. Hoffentlich gibts die virtuellen COM-Ports von FTDI noch viele
-
Thread
Grundsatzfrage zum Bustransfer
nacheinander > abarbeiten (also Interrupt abschalten, eine Schnittstelle abfragen, > Antwort einlesen und Interrupt wieder anschalten)? Nein. Typisch hat man für RS485, CAN und Ethernet usw. einen Controller im MC, der die Daten puffert. Z.B. bei der UART im AVR werden bis zu 3 Bytes gepuffert
nacheinander >> abarbeiten (also Interrupt abschalten, eine Schnittstelle abfragen, >> Antwort einlesen und Interrupt wieder anschalten)? > > Nein. > Typisch hat man für RS485, CAN und Ethernet usw. einen Controller im MC, > der die Daten puffert. > Z.B. bei der UART im AVR werden bis zu 3 Bytes
-
Thread
ATMEGA32U4 Schaltplan
Plan) zwischen USB und Rest eingebaut mit 500ma als Überspannungsschutz und zur Absicherung des USB Ports. Da muss ich mich noch mehr einlesen denke ich. So wie ich das verstehe, platziere ich diese aber nach der PTC Sicherung? :-) Herzlichen Dank, Benjamin
zwischen USB und Rest eingebaut mit 500ma als > Überspannungsschutz und zur Absicherung des USB Ports. Da muss ich mich > noch mehr einlesen denke ich. So wie ich das verstehe, platziere ich > diese aber nach der PTC Sicherung? :-) Nein, es geht hier /nicht/ um die Versorgung, sondern um die
-
Thread
Atmeg führt reset ohne Grund durch
12 geschickt wird. Hat jemand eine Idee warum das so ist. Hier noch der Code: [c] #include <avr/io.h> #include <avr/interrupt.h> #include "pid.h" #include <stdio.h> #include <stdint.h> #define F_CPU 20000000UL // Frequenz des AVR 20Mhz #define BAUDRATE 19200UL // Festlegen der Baudrate
uint16_t ist; uint16_t pwm_signal; int16_t Stellgr; ist = read_ADC(0); // Istwert an ADC0 einlesen soll = read_ADC(1); // SOllwert über AC1 einlesen Stellgr = pid_Controller(soll,ist,&pidData); if (Stellgr<0) { Stellgr = 0; } pwm_signal = Stellgr; set_PWM(pwm_signal,32768
-
Thread
Operand 2 Out Of Range
r16, HIGH(RAMEND) out SPH, r16 ; ;:::::::::::::::::::Timerwahl:::::::::::: ; PortEinlesen: in r16, pinc Timer1: cpi r16,0b00000010 brne Timer2 rjmp Timer1W Timer2: cpi r16,0b00000100 brne Timer3 rjmp Timer2W Timer3: cpi r16,0b00001000
r16,0b00010000 brne Timer5 rjmp Timer4W Timer5: cpi r16,0b00100000 brne PortEinlesen rjmp Timer5W ; ;::::::Auf Befehl warten::::::::::::: ; Timer1W: sbic pinc, 0b00000001 rjmp Timer1A rjmp Timer1W Timer2W: sbic pinc, 0b00000001 rjmp Timer2A rjmp
-
Thread
Kosmos CP1 Emulator mit ATmega
namens "vports". Dieses "vports" ermöglicht es (wenn auch langsam), bunt über alle Anschlüsse des AVR gemischt, 8 Bits zu einem Port zusammen zu fassen. Hier kann einem Port entweder mittels einer Zuweisung eines uint8_t Wertes der ganze "Port" auf einmal gelesen geschrieben werden, oder einzelne Bits
schrieb im Beitrag #6542179: > (...) Bis Du sagtest, dass kann man auch irgendwie mit > internem AVR-Pullup / Down machen, was wohl nicht stimmt. DARUM ging es. Mit dem AVR und dessen internem Pullup kann man das Verhalten des Port 1 eines i8039 emulieren. Darum ging es. Mit dem AVR kann man
-
Thread
ATtiny45 Spannungsmessung Analogeingang
Versorgungsspannung, also 5V als Referenz nehmen. PB0 also unbeschaltet ?! Hier mein Quellcode: [c] #include <avr/io.h> #include <inttypes.h> #include <util/delay.h> /* bei alter avr-libc: #include <avr/delay.h> */ #include <avr/interrupt.h> # define ADC2_PB4 0b00000010; // Analogwert auf ADC2
CKDIV8 daher Projekt auf 1Mhz Int. RC Osc. 8 MHz; Start-up time PWRDWN/RESET: 6 CK/14 CK + 64 ms AVR-Studio-Konfig Frequency = 1 MHz */ #include <avr/io.h> #include <inttypes.h> #include <util/delay.h> /* bei alter avr-libc: #include <avr/delay.h> */ #include <avr/interrupt.h> # define
-
Thread
AVR-Mikrocontrollertechnik-Kursus in Assembler besprechung Gesperrt
rjmp _loop ;Weitere Programmteile bearbeiten _pla_service: in A,LED_PORT ;LED Port-Zustand einlesen eor A,B ;PLA-Bit toggeln out LED_PORT,A ;PLA-LED toggeln cbr Flag_Byte,1<<LED_PLA ;Flag fuer Programmlaufanzeige
rjmp _loop ;Weitere Programmteile bearbeiten _pla_service: in a,Led_Port ;LED Port-Zustand einlesen eor a,b ;PLA-Bit toggeln out Led_Port,a ;PLA-LED toggeln cbr flag_byte,1<<LED_PLA ;Flag fuer Programmlaufanzeige
-
Thread
Spannungsmessung mit AVR
Widerstand vor dem Pin sein sollte. Wenn ich also "recht schnelle" Signale mit einem Spannungsteiler in den AVR einlesen möchte sollte also noch ein Spannungsfolger verwendet werden, der einen geringen Ausgangswiderstand hat? Steffen
Steffen wrote: > Wenn ich also "recht schnelle" > Signale mit einem Spannungsteiler in den AVR einlesen möchte sollte also > noch ein Spannungsfolger verwendet werden, der einen geringen > Ausgangswiderstand hat? Das ist dann sinnvoll, wenn das zu messende Signal sehr hochohmig ist.
-
Thread
mal wieder Busy-Flag
| ( 1<<DDA3) ); // Pin 0-3 als Eingang LCD_PORT &= ~(1<<LCD_RS); // RS- Pin auf 0 setzen LCD_PORT |= (1<<LCD_RW); // RW- Pin auf 1 setzen while(a != 0) { toggle_enable(); a = (LCD_PIN & 0x01); // obere Nibble einlesen
DDRA &= ~( (1 << DDA0) | ( 1<<DDA1) | ( 1<<DDA2) | ( 1<<DDA3) ); // Pin 0-3 als Eingang LCD_PORT &= ~(1<<LCD_RS); // RS- Pin auf 0 setzen LCD_PORT |= (1<<LCD_RW); // RW- Pin auf 1 setzen while(a != 0) { toggle_enable(); a = (LCD_PIN & 0x08); // obere Nibble einlesen
-
Thread
Welchen µC benutzen wenn mehr als 32 Inputs benötigt werden?
wenn ich mir dann noch das Pin - Anschlussrouting ansehe, dann tendiere ich zu i2c input/output port expander. Z.B.: * PCF8547T * MCP23008 * MCP23017 Mann kann natürlich auch einen attiny841 mit I2C Slaveinterface einsetzen oder auf einen atmega328p setzen. Beim atttiny4313 muss man AVR312
Dominikkur, die PICs AVR kann man ISP Programmieren. Was ist also unter ISP zu verstehen? http://www.atmel.com/Images/Atmel-0943-In-System-Programming_ApplicationNote_AVR910.pdf
-
Thread
welches avrdude unter win für usbasp
avrdude -u -c usbasp -p usb162 -P usb -B 20.96 -F -U flash:r:"test.hex":a avrdude.exe: error at C:\avrDude\avrdude.conf:370: programmer type xbee not found avrdude.exe: error reading system wide configuration file "C:\avrDude\avrdude.conf" [/code] ein usb capture mit bushound zeigt keine usbrequests
schrieb im Beitrag #6958696: > Welche sind das? > > Ich frage, weil mir noch keine Probleme an USB3 Port aufgefallen sind. Es funktioniert problemlos sobald ein Hub dazwischen geschaltet ist. Wenn der Dongle aber direkt an einem Root Port hängt vielleicht sogar an einem Superspeed Port wird nicht immer
-
Thread
Matrixtastatur in Assembler
Pulldown-Widerstände anschließen damit die Pins 0 - 3 low werden bei Tastendruck. Wird keine Taste gedrückt hat der Port den Binär-Wert 00001111. Drückt man nun z. B. die Taste "6" wird Pin 1 low und Pin 5 high und man liest 00101101 aus dem Port aus. A = 00101011 8 = 10001011 3 = 00011110 usw... Der Port sollte dann
Ausgänge und Eingänge aufgeteilt ist, was ja der "springende Punkt" der Diskussion ist. Dass man die AVR-Ports als open-drain nutzen kann ist mir bekannt. Jedoch nutz das nix wenn bei Anfängern die Gefahr der Programmierfehler besteht. ;-) Außerdem gibt es gelegentlich billige Taster mit eingebauter Diode
-
Thread
VisualBasic6: Zahlen vom Mikrocontroller empfangen
.PortOpen = False Else PortTest = False MSComm1.PortOpen = False End If End Function Private Sub Command1_Click() 'Nummer des com-Ports: MSComm1.CommPort = Text1.Text ' Baud: ' Beispiel
= 1 MSComm1.InputLen = 0 End Sub Private Sub Command2_Click() 'String zum AVR senden MSComm1.Output = Text3.Text + vbCr End Sub Private Sub Command3_Click() 'com-Ports durchtesten ''wenn verfügbar dann Message anzeigen Dim Portzaehler As Integer For Portzaehler = 1 To
-
Thread
indizierte addressierung
ich würde mich über ein bspprog freuen gruß Peter PS: Programmierung erfolgt in Assembler (AVR-Studio 4), Microcontroller wird der atmega8 verwendet
probleme was verstehst net, ich erkläre gern genauer. die grundproblematik: ich habe ein poti am adc Port eines Atmega8 hängen kann die register ADCL ADCH schon wunderbar auslesen und auf ein lcd ausgeben (binär). und nun möchte ich eine Datenbank anlegen die zu jedem Wert den der ADC Port liefert einen
-
Thread
Port wechseln für LCD-Display
Also in den Programmausschnitten ist nichts zu sehen. Gibt es im Programm noch Routinen die auf Port A bzw. C zugreifen bzw. Sonderfunktionen an den Pins aktivieren? Evtl. JTAG mal über die Fuses abschalten (wenn du ISP programmierst natürlich). avr
ließ dir mal das Datenblatt durch wie alles funktioniert. Im Prinzip gibts du die Daten an einen Port aus und musst dann über einen anderen Port ein paar Steuerleitungen ändern. Daten vom Eingang einlesen und Daten aus dem Latch an den Ausgang geben, dann Eingänge wieder hochohmig schalten und der
-
Thread
AVR- C: Welche einfachen Projekte für den "Einstieg"?
ist, dass man den PORT-Block im Powermanager in Betrieb nehmen muss – beim AVR sind standardmäßig alle Blöcke eingeschaltet, und man muss einzeln ausschalten, was man nicht braucht, um Energie zu sparen.
im Beitrag #7201585: > Das wirklich einzige, was sich nennenswert vom AVR unterscheidet ist, > dass man den PORT-Block im Powermanager in Betrieb nehmen muss – beim > AVR sind standardmäßig alle Blöcke eingeschaltet Der Teufel liegt eben in den zahlreichen Details.
-
Thread
bitte um hilfe bei switch case aufbau
ich, wenn ich jetzt PA0 drücke, Das funktioniert so nicht, denn du musst ja das PIN Register von Port A, also PINA erstmal einlesen. denkbar wäre bei negativer Logik (Pin wird vom Taster auf low gezogen): [c] #define PINMASK (1<<PA0)|(1<<PA1)|(1<<PA2) uint8_t n = ~PINA; // lese Pins
Funktion hat. Und deshalb tu ich mich da so schwer das zu verstehen. Brauche erstmal dennächst den avr dragon o.ä. dann muss ich auch nicht mehr soviel fragen.
-
Thread
Kleines Tiny13 Sensorboard
: Clock als Taktquelle für den System-Interrupt und darin Daten einlesen.
auch schon den OR Befehl entdeckt? Dann herzlichen Glückwunsch, nur noch 20 Befehle dann kannst du AVR...