-
Thread
Mein eigener TFT-Controller
beschreiben zu können. wenn du 55ns rams hast und 62.5 ns zeit -> 7.5 ns übrig / 55ns ~ 8 bytes einlesen um eins schreiben zu können, oder aber 2 rams parallel -> 4 bytes einlesen um 2 schreiben zu können. (alle angaben ohne gewehr *gg*)
erst in die ARM7-Core programmierung incl. Tool Chain einarbeiten und doch lieber erst mal bei den AVR Controllern bleiben. Grüße Steffen
-
Thread
A/D Wandler mir 64 eingängen
verwenden. Dann kann ein AD-Kanal für 8 Messpunkte verwendet werden. Mit 5 solchen Stufen an 5 AVR-AD-Pins + 3 Pins um die Multiplexer zu schalten ist die Aufgabe gelöst. 10 mal pro Sekunde umschalten,messen und ablegen ist zeitlich keine Herausforderung. gruß avr
www.home.agilent.com/agilent/product.jspx?nid=-35075.384455.00&cc=DE&lc=ger Hat schon USB und 64 Kanäle. gruß avr
-
Thread
Über Mikrocontroller Beschleunigungssensor auslesen
Beschleunigungssensoren verwende, die analoge Spannungen ausgeben. Die dann in einen Mega8 über die AD-Wandler einlesen und in menschlesbare Dezimalzahlen umwandeln und sagen wir im Sekundentakt auf einem Display ausgeben zu lassen. Weil ich schon kleinere Projekte mit AVR-Assembler gemacht hatte und das AVR-Tutorial
Vielleicht kann einer von den Profis mal ein Auge auf den Code werfen? Danke! [c]#include <avr/io.h> #include <util/delay.h> #include "m50530.h" #include <stdlib.h> #define DDR_SPI DDRB #define PORT_SPI PORTB #define PIN_SPI PINB #define DD_BMA020_CS PB4 #define DD_MOSI PB5 #define
-
Thread
Uhr-Schaltung
Guck da mal rein: [[AVR-Tutorial: 7-Segment-Anzeige]] Da sparst Du Dir eine Menge Vogelfutter (PNP statt NPN etc.)
welches ich an Vcc geschaltet hatte: Im Prinzip habe ich mich an die Vorlage [[DCF77-Funkwecker mit AVR]] gehalten. Ich möchte später nämlich die Spannung an Pin33 einlesen. Ist das trotzdem falsch oder wie muss das jetzt?? mfg LukasZ
-
Thread
ADC Einlesen Auswerten Ausgeben
Gebiet der uC. Ich habe schon einige Tutorials durchgearbeitet und "spiele" selber noch mit dem MyAVR-Board mit einem Mega8 ein bischen herum. Meine Frage. Ich will z.B. ein 5V Spannungssignal in ein PWM umwandeln, das Signal über ein RC Glied Filtern und wieder einlesen. Es soll darauf hinauslaufen
benutze dazu fast 1:1 das Tutorial. Jetzt will ich aber das analoge Signal (also hinter RC) wieder einlesen auf einem Pin von Port C. Wie teile ich dem Controller mit das er z.B. den Wert an Port C1 einlesen soll. Was mich da wundert, ich habe den Port C nicht initialisiert. Und der Controller liest automatisch
-
Thread
Atmega8 läuft nur mit internen Quarz, nicht aber mit externen
mal pro Sekunde. dann muss der Fehler irgendwo im Quelltext stecken,... hier: [c] #include <avr/io.h> #include <util/delay.h> #define SCREEN_WIDTH 122 #define SED1520_DATA_PORT PORTD #define SED1520_DATA_DDR DDRD #define SED1520_DATA_PIN PIND #define SED1520_CONTROL_PORT PORTC
CONTROL_PORT &= ~SED1520_E1; asm("nop");asm("nop"); SED1520_CONTROL_PORT |= SED1520_E1; asm("nop");asm("nop"); tmp = SED1520_DATA_PIN; SED1520_CONTROL_PORT &= ~SED1520_E1; } else {
-
Thread
Daten aus einem USB Gerät mit FT232/245AM Chip auslesen
du denn auslesen? Das ist doch ein USB => RS232 Wandler. Sprichst du also letzen Endes wie ein COM-Port an.
gehandhabt. Das ist kein USB-Stick bzw. Memory-Device. Wenn Du das Gerät einsteckst, wird dann ein COM Port geöffnet? (Gerätemanager beim Einstecken beobachten) Falls ja, dann wird vermutlich nur über einen COM Port kommuniziert. Dann Portmon, Deinen Protokoll Monitor oder ein ähnliches Programm verwenden
-
Thread
AVR_Programmierung eines uController
gestern in der Schule eine Aufgabenstellung für ein Microcontrollerboard bekommen, programmiert wird im AVR, und weis nicht wie ich anfangen soll? Die Software ist für einen ATmega16 Hier die Aufgabenstellung: Ein uController Programm ist zu erstellen, dass die Frequenz eines ADC-Port des uControllers
Teilaufgabe 2 henge ich? > > Wie funktioniert das mit dem ADC wert, mit fmin und fmax? ADC-Wert einlesen geht schon? (⇒ http://www.mikrocontroller.net/articles/AVR-GCC-Tutorial#Analoge_Ein-_und_Ausgabe) dann, fmin und fmax sind vorgegeben, oder? Aus der Frequenz die Periodendauer ausrechnen, der Timer
-
Thread
Datenkollision an serielle Schnittstelle
aussortieren kann und damit kann der Controller in dieser Reihefolge die Signale ein nach dem anderen einlesen. Liebe Grüße Vintagewomen
Die Baudrate ist 9600. Ich möchte nun einen Mux benutzen und habe folgendes Problem. Kann man Port F (PF0..PF3) von ATmega128 als normale IO (hier für Adressenbus) verwenden? Liebe Grüße Vintagewomen
-
Thread
Probleme beim ADC-Wert auf LCD ausgeben
RS zu setzen push temp2 push temp3 in temp3, LCD_Strg_PORT ; schreibt den Zustand von LCD_Strg_PORT nach temp3 ;cbr temp3, Pin_RS ; Setzt RS auf 0 (0=Befehl) andi temp3, 0b11111011 out LCD_Strg_PORT, temp3 ; Gibt temp3 an LCD_Strg_PORT aus (jetzt mit RS=0) out LCD_PORT, temp1 ; Gibt den Befehl an LCD_PORT aus rcall lcd_enable rcall delay50us pop temp3 pop temp2
-
Thread
ADC initialisieren - ist das so richtig?
(1<<ADIE) | (0x06); } [/c] Ist diese Routine so richtig? Der Takt beträgt 3,6864MHz, die WinAVR Version ist 20090313. Gruß, Achilles
http://www.mikrocontroller.net/articles/AVR-GCC-Tutorial#ADC_.28Analog_Digital_Converter.29
-
Thread
ATmega8 und UART => Code bringt Einsteiger zum Verzweifeln
mit 1 gelöscht wird. Auch wenn das ganze für eine Uralt-Version der avr-libc geschrieben wurde, die Funktion des ADC hat sich nicht geändert. So kann das nicht funktionieren. Lies die mal den Abschnitt zum ADC im avr-gcc-Tutorial durch (und dazu das Datenblatt), und
//initialisieren der I/O-schnittstellen void ioinit (void) { DDRB = 0b00000110; //PortB konfigurieren PORTB = 0b11000100; DDRD = 0b00000110; //PortD konfigurieren PORTD = 0b00000010; } //initialisieren des Analog-Digital-Converters void
-
Thread
Projekt Melodiegenerator
Hi, dazu kann ich dir das [[AVR-Tutorial]] und das [[AVR-GCC-Tutorial]] an's Herz legen. Da ist die Interrupt-Geschichte und das ganze Timer-Zeug recht gut erklärt. Aber im Grunde brauchst du etwa Folgendes: Einen Timer-Interrupt
theoretisch.... solltes gehn;) Dh. noch die 4 restlichen Lieder programmiern, und erst mal in arrays einlesen;) Danke für eure Hilfe ich meld mich wenns probz gibt oder wenns mal funktioniert;) lg Paul
-
Thread
Adressierung bus mit dipschalter
Hallo, also das Einlesen von Schaltern und Tastern an einem AVR ist wohl der erste Teil des AVR-Tutorials für Anfänger... Wenn Du jetzt schreibst, daß Du da Master/Slave geschichten mit 8 AVR laufen hast und dann daran
scheiterst, kann ich holgers Bemerkung nur zu gut verstehen. Was ist denn nun Dein Problem? Das Einlesen der Schalterstellung mit einem AVR? Dann kann ich Dich auch nur dahin verweisen: http://www.mikrocontroller.net/articles/AVR-Tutorial:_IO-Grundlagen Gruß aus Berlin Michael
-
Thread
impulslängenanzeige mit PIC
selber nicht braucht. Stell mal die Wahl der Programmiersprache (Bascom, C) und der MC-Familie (AVR, 8051, PIC) frei, das erhöht die Chancen drastisch. Peter
programm in den atmel bekomme > wäre ich überglücklich ^^ http://www.mikrocontroller.net/articles/AVR_In_System_Programmer Prinzipiell sollte das Programm auch auf einem PIC-Compiler laufen. Man muß nur die Namen der Port- und Richtungsregister anpassen. Und die Delayfunktion schreiben, wenn
-
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
bezahlbare Messdatenerfassung
Uart. Die billigen USB-Seriell-Adapter müssten bis 1Mbd gehen. Vielleicht kann VB das passend zum AVR einstellen. Ein FRAM müsste anschließbar sein zur Messdaten- erfassung offline. Der ATmega8 ist halt leider kein Energiesparwunder. Dafür ist er im DIL leichter zu verarbeiten als die MSP430
ähnlich hatte ich mir das gedacht. Der Mega8 hat halt eine ungünstige Portausstattung. Kein einziger Port steht voll zur Verfügung. Ein ATmega8535 wäre da wohl besser. Wenn ein 8-bit-Port spendiert wird kann da ein chip für DO, ein chip für DI, ein DA-chip und ein AD-Chip angehängt werden. Läuft
-
Thread
ATmega128 + External Memory Interface
problemlos, auch bei 16 MHz und ohne Delays (außer einem NOP zwischen !RD auf low ziehen und PINA einlesen im Lesezyklus, aber das liegt ja am Timing der GPIOs bei Atmel). Timing-Probleme halte ich daher für unwahrscheinlich. Was ich natürlich eigentlich will, ist, daß sich der AVR um das SRAM kümmert
[c] void SetAutoSramConfig() { // Externes SRAM durch uC-Hardware verwaltet // (betrifft Ports A, C und G) XMCRA = 0; // Keine Wait states XMCRB = (1 << XMBK); // Bus keeper aktiv, 16-Bittige Adressen MCUCR |= (1 << SRE) | (1 << SRW11) | (1 << SRW10); // SRAM
-
Thread
Bauprojekt: kleines Lichtmischpult
Ports einlesen zu können hätte ich die Zustandshaltefunktion gerne extern aufgebaut. Leider kenne ich mich mit digitaler Logik nicht so gut aus. Wie würde man sowas aufbauen? Soviel mal zu meinem Steuerungskonzept
flashfunktionen verschiedener leuchen drauflegen sowas wäre als ergänzung vlt gaz witzig nen AVR kann am PORTPIN sowas machen
-
Thread
Erste Gehversuche mit µcs: Eine Eieuhr
Countdown realisieren will. Geht der Kreislauf mit 3V Spannung? Das Kaskadieren habe ich wie hier ([[AVR-Tutorial:_Schieberegister#Kaskadieren_von_Schieberegistern]]) empfohlen nachempfunden. Ich hoff, dass ich dabei keine Fehler gemacht habe. Leider ist das AVR-Tutorial komplett in ASM. Da ich leider
Multiplexen? Ein ULN2803 und ein UDN2981. Danke! Werde mich gleich mal in das Thema Multiplexen einlesen, da ich das noch nicht behandelt habe. Danke, Kachel - Heinz. Die Erklärung ist perfekt nachvollziehbar. Vielen Dank Johann, ich werde die vielen Ratschläge beim nächsten Anlauf in Eagle alle
-
Thread
DC Motor ansteuern
Sensoren. Im Moment geht es mir mehr um Sinn und Unsinn der Schaltung. Und ob ich die PWM direkt vom AVR nehmen kann, oder ob da noch ein Verstärker dazwischen muss. Allerdings kann ich nächste Woche den Motor auch mal in die Mechanik einbauen, dann hängt die definierte Last dran. Ich möchte nur vorher
Selbst bei 100% Tastverhältnis PWM geht das nicht annähernd so schnell. Ich vermute da ist echt der Port des Mega überfordert. Könnt ihr mir FETs empfehlen die da besser geeignet sind? Oder muss ich da echt noch irgendwas zwischenschalten? Gruß Kamikater
-
Thread
Zeigt her Eure Kunstwerke! Gesperrt Bilder
Das hier ist ein kleiner AVR-ISP Programmer für den COM-Port. Durch ein paar Wiederstände mehr ist er auch für 3.3V Schaltungen geeignet, aber eben nur für AVR. Als Gehäuse dient eine Filmdose.
multiplexen, kann aber auch auf eine Reihe LEDs umgeschaltet werden, oder per Jumper vier Taster einlesen. Gebaut für einen PIC16F627 oder (aber nicht gleichzeitig), PIC16F873 bzw. alle Pinkompatiblen. Ganz links alle Ports (und Osc.) auf Klemmen rausgeführt. Das 2x16 LCD wird über die Klemmen unten
-
Thread
AVR32UC3A Port setzen
= 0xFF; // GPIO enable-Register //AVR32_GPIO.port[0].oder = 0xFF; // GPIO als Ausgang. AVR32_GPIO.port[0].ovrc = 0xff; AVR32_GPIO.port[0].ovrs = zahl; // GPIO-Zustand //AVR32_GPIO.port[0].ovr = ((AVR32_GPIO.port[0].ovr
; AVR32_GPIO.port[0].gperc = AVR32_GPIO.port[0].gperc | (1 << 21); // Use PA21 as function, disable setting as a periphal pin AVR32_GPIO.port[0].pmr0c = AVR32_GPIO.port[0].pmr0c | (1 << 21); //Function
-
Thread
AVR Joystick mit variablem Widerstand einlesen
Hallo, also mein Problem is folgendes: Ich habe einen AVR ATMega8 als "Herz" eines kleinen Ferngesteuerten Autos. Ich habe 4 Motoren die über Treiber IC's Angeschlossen sind und auch soweit funktionieren. Jetzt habe ich einen Joystick ( keinen wie man jetzt denkt zum an den Pc anschließen oder so ) der einfach nur simpel hoch, runter, rechts, und links schaltet. Allerdings nicht einfach an/aus sodern auch mit variablem Widerstand. Also wenn er nur halb nach oben is, is auch nicht ganz HIGH (5V) sondern halt nur 4.99 oder so. Jetzt ist meine Frage ob bzw wie ich das messen kann und dann natürlich
-
Thread
Sieben-Segment-Anzeige? Sehr einfache Ansteuerung?
lassen. Wieviele Stellen braucht Deine Anzeige und wie groß soll der Zählumfang werden? Falls es ein AVR sein darf, könnte ich helfen, bei PIC halte ich mich raus. ...
dimmen. Bis zu vier Stellen. Eine andere Version des IC (MAX6959) kann auch Taster neben der Anzeige einlesen.
-
Thread
Flugzeug-Daten auf 1090 MHz empfangen
kann. Bei mir hat sich folgender Aufruf bewährt: ./dump1090 --quiet --net --net-ro-port 47806 --fix --ppm 50 --quiet unterdrückt die Ausgabe auf den Terminalbildschirm --net stellt das Webinterface bereit --net-ro-port 47806 stellt einen output listen Port zur Verfügung der auf Anfrage
Timingprobleme beim Start). netcat kann Daten von einem Port lesen und in den stdio schreiben. Dort kann socat die Daten auslesen und ins Netz weiterleiten, das sieht dann so aus: - erst dump1090 wie oben mit der --net-ro-port 47806 Option starten - dann
-
Thread
UVR 1611 (TA), Auswertung DL, Mega88, WinAVR
haben :) Das Thema ist spannend und ich auf einem ähnlichem Weg. Das Auslesen des DL mit nem AVR ist schon eine nette Lösung. Zum Schreiben auf dem DL hab ich noch nichts gefunden, bin aber am sammeln inwiefern über den CAN-Bus direkt das umsetzbar wird. Als Verarbeiter dann ein AVR und CAN-Transceiver
mehrere I/O-Module und baut sie entsprechend auch in seiner Regelung ein. Ich werde wohl nicht den AVR nehmen sondern direkt einen Kleinstrechner (Beaglebone), so kann ich gleich den Home-Automation-Server mit Webinterface mitlaufen lassen. Falls mir das mißlingt, wirds AVR und nen UART. (ist auch günstiger
-
Thread
return Befehl - Werterückgabe nutzen aber wie? Gesperrt
} ../setup.c:239: error: void value not ignored as it ought to be beschwert sich das AVR-Studio, aber für euch ist das doch ein leichtes oder? Danke
Dein Tasten einlesen ist nicht richtig. (PINC & 0b00000100) == 0b00000011 Das in Klammern liefert die eine 1 wenn du die Taste an PC2 drückst. Aber eine 1 ist immer ungleich 3 (0b00000011).
-
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
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
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
Uart und Pwm gleichzeitig
in ein Register (ROR oder ROL) kann man die Carry-Zustände "einsammeln" und in einem Rutsch an den Port ausgeben. Das erspart eine Menge Branches. ...
> Wie macht man das in C ? Hmmm, der AVR kann kein C... Ich auch nicht... Also stellt sich die Frage nicht. ;-D Wurde C (ANSI-C) nicht für 16-Bit-Maschinen gemacht? Läuft es auf 8-Bit-Controllern nur durch standardfremde Erweiterungen
-
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
Verkürzte Schreibweise von PIND%2
eine 1 Warum will er die direkte / verkürzte Schreibweise nicht erkennen? - ATmega8 - WinAVR GCC
den CPU-Typ-Eintrag im Makefile! Abgesehen davon steht sie wie auch die io.h im Unterverzeichnis "avr"... Du solltest die Datei auch nicht einbinden, sondern sie öffnen und lesen, was drinsteht.
-
Thread
Frage zu serieller Schnittstelle! DRINGEND Bitte!
stdio.h> #include <mmsystem.h> #include <cstdlib> #include <iostream> #include "Serial.h" //einlesen der Headerdatei #include "Serial.cpp" //implementieren der .cpp datei using namespace std; CSerial COMPort; // für serielle übertragung auf den AVR //Definieren der variabeln unsigned char
eine frage, da du dich anscheinend ganz gut auskennst! wie kann ich das dann von nem anderen pc einlesen?
-
Thread
PPM von RC-Empfänger einlesen in Mega8
***************************************************************** #include "ppm.h" #include <avr/io.h> #include <avr/interrupt.h> extern void ppm_init() { //PD2 (INT0) as input with internal Pull-Up DDRD &= ~(1 << DDD2); DDRD |= (1 << PD2); // enable Interupt INT0 GIMSK
ppm_init(void); extern uint8_t get_0_50 (uint8_t channel);[/c] test.c [c]#include "ppm.h" #include <avr/io.h> int main() { DDRC = 0xff; // Port C ist Ausgang ppm_init(); uint8_t position; while (1) { if (1 & channels.dirty) { position = get_0_50 (0); if (position
-
Thread
Display mit Touchscreen bei Pollin?
Plan den ich hier aus dem Forum habe. Ich habe jetzt mal den Quarz abgehängt und XTAL1/2 als I/O Port genommen (wie es laut Plan angegeben ist). Weiter habe ich die interne Freq. auf 8mhz gestellt. Ich habe den Atmega laut AVR Tutorial angeschlossen (exkl. Quarz). http://www.mikrocontroller.net/
es funktioniert genauso wenig mit PortB und PortA. Habt ihr vielleicht irgendeine Idee? Der AVR läuft noch mit factory 1MHZ... aber daran wird es ja wohl nicht liegen, oder? Zum Glück hatte ich noch nen kleinen AVR rumliegen, sonst wüsst
-
Thread
ATMega644 - wahlfreies Schreiben auf Register
Adressbereich 0...31 befinden sich (außer beim Xmega) die CPU-Register, und IO-Register gibt es (je nach AVR) auch noch jenseits der Adresse 0xff, die du maximal mit einem "char" (druckbares Zeichen?) adressieren kannst. [c] static inline uint8_t read_addr(uint16_t addr) { return *(volatile uint8
nicht der Wert drin, bzw. die Ausgänge ändern Ihren Status nicht. Die Lesefunktion ist OK, da ich Port-Pins korrekt einlesen kann, wenn ich z.B. das externe Signal ändere. - welche Register? Eigentlich alle. Die CPU-Register 0x0 - 0x1F sind sicherlich nicht von großem Interesse. Jedoch der restliche
-
Thread
scanf stürzt bei seriellem Port ab
Stattdessen verschwindet das Newline Zeichen wie von Geisterhand aus dem Puffer, obwohl in der Doku der avr-libc genau das Gegenteil ausdrücklich geschrieben steht.
Stattdessen verschwindet das Newline Zeichen wie von Geisterhand > aus dem Puffer, obwohl in der Doku der avr-libc genau das Gegenteil > ausdrücklich geschrieben steht. Ich hab jetzt nicht die Doku gecheckt. Aber deine Beschriebung dessen, was scanf beim Einlesen von Zahlen machen soll, stimmt so nicht
-
Thread
RAM-Bankswitching - wie am geschicktesten mit GCC auf AVR?
schreiben, dann sollte das deutlich schneller sein. PS: Anstelle von PINF solltest du besser PORTF einlesen.
XMEM adressierten, was 4GB ergibt. Einen LCD Controller mit 2MByte Speicher habe ich so an einen AVR angeschlossen, das ermöglicht etwa 500-1000kByte/s reine Datenrate.
-
Thread
Ausgang des Atmega32 definieren
auf 0xFF setzen -> alle LEDs aus loop: in r16, PINA ; an Port A anliegende Werte (Taster) nach r16 einlesen out PORTC, r16 ; Inhalt von r16 an Port C ausgeben rjmp loop [/avrasm] Leider habe ich hier das problem, dass die LED ständig
; an Port A anliegende Werte (Taster) nach r16 einlesen out PORTC, r16 ; Inhalt von r16 an Port C ausgeben rjmp loop [/avrasm] //Beispiel Taster unbetätigt PINA 0b10000000 wird
-
Thread
Warum liegen eigentlich die Portfunktionen bei den kleinen Megas so ungünstig?
Datenport den ich möglichst schnell beschreiben und lesen kann. Nun möchte ich dafür gern einen kleinen AVR verwenden. Der Tiny2313 hat nicht genug Pins, nen Mega88 hätte ich sogar noch als TQFP da, super. Nun folgendendes: Port B hat an 5/6 den Quarz liegen (bei schnellem Uart unverzichtbar) und Port D
Programm was 8bit + ~8 einzelne Leitungen + Uart + Quarz braucht?!? Selbst wenn ich einen neuen AVR bestellen würde: Es gibt scheinbar kein "kleines" Modell wo man neben UART und Quarz nen 8 bit Port frei hat. Im Endeffekt werde ich wohl den mega88 nehmen und 3 zusätzliche CPU Takte pro IO in Kauf
-
Thread
Drehencoder für Anfänger
Controllerfrequenz : 16 MHz Drehencoder PORTB: A - Pin0; B - Pin1 Code : [c] #include <avr\io.h> #include <avr\interrupt.h> #include <avr\signal.h> #include "glcd.h" #include "font_small.h" #define PHASE_A (PINB & 1<<PINB0) // PINB.0 #define PHASE_B (PINB & 1<<PINB1) // PINB.1
definiere, kommt leider keine Änderung (0...255). Habe ich es doch nicht verstanden ? [c] #include <avr/io.h> #include "glcd.h" #include "font_big.h" #include <avr\interrupt.h> #define Schalter_A PINB0 // Schalter A im Drehgeber #define Schalter_B PINB1 // Schalter B im Drehgeber #define Geber
-
Thread
Logikbausteine mit AVR realiesieren
Dirk wrote: > > Wie kann man einzelne Bits beim Atmel abfragen Du meinst von einem Port? Mittels cbis und sbis, aber das hilft dir nicht viel. AVR sind Risc Prozessoren, für fast alles muss der entsprechende Wert in einem Register vorliegen.
OUT ZielPort, R? Johann
-
Thread
piso register per Software in c auslesen
da ich zwei kaskadierte Register, wie es im AVG Tutorial (http://www.mikrocontroller.net/articles/AVR-Tutorial:_Schieberegister) für Schieberegister angegeben ist, verwende. Trotzdem danke für deine Antwort
Problem nich umgehen wenn ich die Tasten wie im Tutorial (http://www.mikrocontroller.net/articles/AVR-GCC-Tutorial) angegeben mit, der inline uint8_t debounce(volatile uint8_t *port, uint8_t pin) Funktion an den Eingängen abfrage? Das mit der Endkopplung sollte kein Problem mehr sein Danke
-
Thread
Die andere Firmware für AVR-NET IO
der Max232 für RS232 (wie beim AVR-Net-IO). Wenn man die UART nicht benötigt ist Port D komplett nutzbar - einfach MAX232 nicht bestücken. - Die Daughterboards (1* 100x80 oder 2 * 50x80) können auch auf Lochraster aufgebaut werden, Pfostenleisten stehen im 2,54er Raster - An Port B hängt im Wesentlichen der ENC26J60 für Ethernet und der ISP Connector (wie beim AVR-Net-IO auch). - Netzteil ist für den Betrieb mit LowDrop Reglern ausgelegt. Im Prototyp steckt noch ein 7805
-
Thread
Transistortester mit AVR Gesperrt
Probleme mit dem programmieren des ATMEGA8. Ich nutze diesen Programmer http://s-huehn.de/elektronik/avr-prog/avr-prog.htm für den Parallel-Port.Zusammen mit der Software PonyProg2000, ich habe Probleme damit die "FuseBits" richtig einzustellen.Der Autor des Artikels hat angegeben das lfuse = 0xc1(C1),
geht.Leider hab ich noch paar Probleme mit dem programmieren des Atmega8 die Adapter aus Inet fürn parallel Port,wollen nicht so funktionieren.Da muss ich nochmal genauer schauen,da ich über kein AVR-Board verfüge und nur den Adapter bauen möchte. MfG Thomas