-
Thread
AX81 - ZX81 im AVR
einem > Microcontroller angesteuert werden kann? Display: http://www.jcwolfram.de/projekte/avr/ax81b/images/ax81_cb2_glcd.png Gegenstück auf Controllerseite: http://www.jcwolfram.de/projekte/avr/chipbasic2/images/ports_de.png
●● pit ●. schrieb im Beitrag #4564693: > Display: > http://www.jcwolfram.de/projekte/avr/ax81b/images/ax81_cb2_glcd.png > > Gegenstück auf Controllerseite: > http://www.jcwolfram.de/projekte/avr/chipbasic2/images/ports_de.png Hallo Pit, ja, diese Stellen kannte ich auch schon.
-
Thread
ATtiny13 Erste Versuche
in temp1,PORTB ;Zustand der Lampe kippen eor temp1,temp2 ;Alle anderen Bit vom Port B out PORTB,temp1 ;bleiben unverändert t0_end: reti
Andreas Becker schrieb im Beitrag #2402991: > In den Watch Fenstern passiert nichts unter den Ports, Hmmm, bei mir passiert was, siehe beide Screenshoots. Dein Programm funktioniert, es macht das was Du programmiert hast, aber eben nicht das, was Du gern programmiert hättest. Aber wir haben ja
-
Thread
Anfängerfrage zu switch case
Der restliche Code [c] #include <avr/io.h> #include <avr/interrupt.h> #define F_CPU 2000000 #include <util/delay.h> #include <inttypes.h> #include <stdint.h> int main(void) { uint8_t sc_temp = 1; //Variable für switch
Wie sind die Taster an den Port angeschlossen? Schließen sie gegen GND oder VCC?
-
Thread
Logiksignale nur durchlassen, falls nicht mehr als eine 1
z.B. timergesteuert alle paar mSec den Status der Eingangsport überwachen, dabei kannst du z.B. 8 Ports immer gemeinsam einlesen und einfach erkennen, ob die Zahl>0 ist. Für die 20 Ports eignet sich am Besten ein Atmega16 aufwärts, der hat dann 32 Ports, von denen du am geeignetsten PortA, PortC und
wirds beim PortC undurchsichtig ;-)
-
Thread
Programm komplett im Interrupt ausführen?!
entsprechenden Ereignis. Natürlich mußt du in jedem Zyklus auf solche Ereignisse prüfen. Auch das Einlesen der IO-Ebene erfolgt in jedm Zyklus, aber nicht in jedem Zyklus ändert sich die IO-Ebene. Das bekommst du heraus, wenn du dir den alten Zustand der Eingänge merkst und die neu eingelesenen Werte mit
Interruptcall ein. [c] main() { for(;;){ while( flag == 0 ); flag = 1; // die AVR-Fallgrube beachten! // tue was } } [/c] Peter
-
Thread
adc vergleichen
ich habe mir das Beispiel von: http://www.mikrocontroller.net/articles/AVR-Tutorial:_ADC auf meinen Atmega8 geflasht das haut auch alles hin, nun wollte ich den adc-Wert vergleichen mit ; Ergebnis nach adlow und adhigh kopieren ; damit die temp Register frei werden
ADSC ; wenn der ADC fertig ist, wird dieses Bit gelöscht rjmp adc_warten ; ADC einlesen: in adlow, ADCL ; immer zuerst LOW Byte lesen in adhigh, ADCH ; danach das mittlerweile gesperrte High Byte ; alle 256 ADC-Werte addieren ; dazu wird mit
-
Thread
Uhrzeit stellen
= *port; _delay_us(150); if( (*port & maske) == (port_puffer & maske) ) entprellungs_puffer |= 0x01; } } int main(void) { lcd_init(); lcd_setcursor(1,1); lcd_string( "
= *port; _delay_us(150); if( (*port & maske) == (port_puffer & maske) ) entprellungs_puffer |= 0x01; } } int main(void) { char str[2+1]; // <=== War vorher zu klein für zwei Dezimalstellen
-
Thread
Gib es OpenSource Echzeit-Debugschnittstelle für µCs ?
Schreiben in EEProm. Auf dem PC läuft dann eine Software, die ein MAP File mit den Adressen einlesen kann und auf der man sich dann Variablen zusammenklickt und jede Variable entweder als Wert oder sogar als "Scope" darstellen kann. Mit Logging.
aber denkbar das zu tun. Grundsätzlich ist das Protokoll sehr an das MOST-Protokoll, bzw. INIC-PortMessage-Protokoll angelehnt. Dh. es gibt eine Längenangabe, einen Header (FunctionBlockID, InstanceID, FunctionID, Opcode) und den Payload. Eventuell gebe ich auch das ganze als Lib (AVR zur Zeit
-
Thread
Bitte um EInschätzung der Machbarkeit
Operationen, Zahlensysteme, Schleifen, Vergleiche, Logische Verknüpfungen, Headerfiles, Eingänge einlesen und Ausgänge auslesen.
wenn es tausende sind) und macht sich Gedanken über eine möglichst preiswerte Lösung (schon ein AVR mit USB Interface kostet mehr Geld als ein AVR der USB in Software emuliert). All das müsst ihr offenbar nicht lösen, also ist es kindereinfach.
-
Thread
pollin kamera au-85
pwm... und ist somit ueber hardwareregister schaltbar... neue idee (bei externen ram): das einlesen der daten erfolg wieder ueber outputclock ext irq und dma... dma chain braucht man nicht der dma kann auch direkt von port zum pmp schreiben... der neue ansatz ist nun das die clock nach den bytes
eigenen .s source alles andere ist kaese ;) kleiner tipp. (wichtig ist optimiser >= 1) ! int *portBase = 0xbf880000; // lata = 1 *(portBase+0x6020/4) = 1; // latb = 1 *(portBase+0x6060/4) = 1; erzeugter code ist: 37: int *portBase = 0xbf880000; 9D00003C 3C03BF88
-
Thread
WordClock mit DCF77, Photodiode und ATMega8
kannst Du ja noch die ein oder andere Leitung von PortC auf PortB oder PortD verlegen.
kannst Du ja noch die ein oder andere Leitung von PortC auf > PortB oder PortD verlegen. Ich denke ich werde die LEDs einfach mit weniger als 20mA betreiben. Ich werde ein paar Testläufe machen wie hell sie dann sind und den Vorwiderstand entsprechend
-
Thread
Einzelnen Pin auslesen
(an dem hab ich die > Brücke gesteckt gehabt) ausgelesen PORTC dient zum Setzen (nicht zum Einlesen) der Ein-/Ausgangspins. Wie es richtig geht steht hier: http://www.mikrocontroller.net/articles/AVR-GCC-Tutorial#Zugriff_auf_IO-Ports
So hier mal der Code: [c] #include <avr/io.h> #include <stdint.h> int main() { DDRC=0x00; DDRB = 0xff; while( 1 ) { PORTB = PORTC; } return 0; } [/c]
-
Thread
Keil MCBSTM32, Clocks, PCLK2 einbinden
schon von der Theorie her nichts bei 72MHz. Ich denke, Du solltest doch nochmal über das Back zum AVR nachdenken...
"SPI™-Compatible Serial Port up to 20MHz" steht groß und Fet unter den Features im DB des ADC
-
Thread
Serielle Daten empfangen mit C#
Hallo, Habe ein Problem bei C# beim einlesen eines vom Mikrocontroller gesendeten Strings. Habe als Endzeichen vom Mikrocontroller '\n' am Ende vom String angehangen. private void COMPORT_DataReceived(object sender, System.IO.Ports.SerialDataReceivedEventArgs
Peter schrieb im Beitrag #2369830: > private void COMPORT_DataReceived(object sender, > System.IO.Ports.SerialDataReceivedEventArgs e) > { > /* try > { > Einlesen = COMPORT.ReadLine(); > } > catch > { >
-
Thread
Präprozessoranweisung das erste Mal
Warum so kompliziert? [C] #ifndef keypad_h #define keypad_h /* Hardwaredefinitionen (avr/io.h muss bereits includiert sein) */ #define keypad_port PORTC #define Taster PINC /* Globale Variablen */ extern unsigned char flankenwechsel2; extern unsigned char keypad_uebergeben; /* Funktionsprototypen */ char keypad_wert_einlesen(unsigned char warten); void keypad_ini(void); #endif /* keypad_h */ [/C] ### Oder ### [C] #ifndef keypad_h #define keypad_h /* Hardwaredefinitionen (avr/io.h muss bereits includiert
-
Thread
Anfänger würde gern Atmel programieren
Links auf der Seite unter AVR, das AVR-Tutorial durchlesen. Du bist nicht der erste. :-)
nicht gegenseitig aus, das STK500 ist ebenfall "In System Programmable", da es einen entsprechenden Port hat. Du kannst den Controller damit auf mehrere Art und Weisen programmieren: - über den RS232-Port ohne jeden zusätzlichen Programmieradapter direkt aus dem AVR-Studio heraus - über einen
-
Thread
Anfängerfrage: Wert umwandeln
sparen kann denn durch das Rechts-Verschieben fallen die unteren 4 Bit sowieso weg. Was das Einlesen der Bitmuster an PINA (und PINC sowie PIND) angeht: Hier sollte man die Ports zunächst in eine Variable mit einem einzigen Zugriff einlesen und die anschließende Auswertung anhand dieser Variablen durchführen. Andernfalls kann es passieren das sich der Eingangswert an den Ports während des sequentiellen Einlesens ändert und somit ein fehlerhafter Wert ermittelt wird.
-
Thread
Taster an Atmega8 -> PC HILFE ( VB 2008 )
&hash=item564571ffb4 Edit: oder mit Print schicken und einlesen und vereibeten lassen mit VB ?
musst. Einfach deinen Avr Midifähig machen und an den PC anschließen.
-
Thread
Abfragen ob Taster mehrmals gedrückt wurde
vielen dank. ich werd mich mal einlesen
oder einen der anderen PortD...6 z.b.
-
Thread
Ein kleiner Oberoncompiler für die C16x-Familie
die könntest Du dir mal ansehen. Und dann gab es hier ja mal jemanden, der einen Pascal-Compiler für AVR machen wollte: http://www.mikrocontroller.net/topic/140480#new Ich persönlich kann auf einem uC mit C leben -- aber eigentlich auch nur da.
Krankheit von Microsoft was auf einem uC wahrscheinlich nicht implementierbar ist (jedenfalls keinem AVR/PIC/8/16-Bitter und keine kleinen 32 Bitter). Java geht auch nur rudimentär auf nem AVR. Wobei die Interpretersprachen (also ALLE Sprachen die Bytecode erzeugen der auf einer virtuellen CPU läuft) allesamt
-
Thread
LCD Ansteuerung error
Das Problem scheint zu sein, dass für den XMEGA128A die Definitionen der IO-Ports nicht erfolgen. Ich kann das hier auch nachvollziehen (AVR Studio 4). Während beispielsweise für einen ATMEGA324p die Datei "iomxx4.h" eingebunden wird, welche die Portdefinitionen enthält, erfolgt
Ändere in der lcd-routines.h die Zeilen: [c] #define LCD_PORT PORTD #define LCD_DDR DDRD [/c] nach [c] #define LCD_PORT PORTD.OUT #define LCD_DDR PORTD.DIR [/c] und füge davor noch [c] #define PD7 7 #define PD6 6 #define
-
Thread
Schaltzustand von Stromstoßrelais lesen
dann ueber RS232 auf den PC tendieren. Mehrere parallele oder serielle Schnittstellen zum direkten Einlesen waeren auch moeglich. Pollin NET-IO (mit eigener Firmware) transportiert schon mal 16 Port-Zustaende in's Ethernet (mit Bastelei auch 20)... Kostet als Bausatz ca. 20 EUR, als Fertigmodul knapp 30
Optokopplers in Reihe zu schalten und mit den 3V des Raspbery PIs zu verbinden und dazwischen den GPIO-Port anzuhängen? Vielen Dank! Christian
-
Thread
Pin Change Interrupt bei offenem Eingang
Hi PortC.5 ist PCINT13 und gehört daher zu PCIE1. MfG Spess
den Pullup eingeschaltet zu haben und nicht den Pin als Ausgang? Wie ist denn die Stromaufnahme des AVR? Peter
-
Thread
Satellitenspiegel auf Campingplatz ausrichten
Hallo, ich würde gern das lästige Ausrichten der Parabolantenne auf dem Campingplatz einen Regler mit AVR überlassen. Ich hatte mir gedacht, einen einfachen Satellitenfinder zu schlachten und dessen Ausgangssignal, mit dem die LED's angesteuert werden, als Eingangssignal für einen Regler auf Atmega-Basis
Aufloesung) mit ein paar LEDs an... Und der direkte Anschluss an den µC benoetigt im Zweifel auch weniger Ports. Volker
-
Thread
Ein paar Fragen zum Umstieg auf die STM32 Reihe
genauer zu sein die F103 Serie ) umzusteigen, da das Preis/Leistungsverhältnis im Vergleich zu den AVR meiner Meinung nach deutlich besser ist. Jedoch habe ich ein paar Verständnisfragen, zu denen mir leider auch der STM32 Artikel hier nicht helfen konnte: -Worin genau liegt der Unterschied zwischen
nur eine kleine Adapter-Platine, nur schade, dass die meisten JTAG-Interfaces nicht gleich ein COM-Port mit dabei haben. PS: Schaue Dir auch mal CooCox.org an.
-
Thread
Taster-Matrix Code von Peda auf AVR
Der AVR-GCC kennt keine Memory-Typen. "idata" und "code" löschen oder leer definieren. Peter
Anhang meine überarbeitet version wenn ich nun die Tasten Drücke bekomme ich den Binär Code am LED Port angezeigt wenn ich die Taste loslasse wird der Port wieder gelöscht. Nur muss ich das nun noch entprellen. Da hab ich den Kommentar von PeDa in der Routine nicht verstanden "call with debouncing
-
Thread
0-5V => 100Hz PWM 0-100% @10V
avrGerd schrieb im Beitrag #2333555: > > Wenn Du nur 5V hast, kannst Du auch den Vorwiderstand anpassen und schon > gehts auch mit 5V. > > Was ist dass denn für ein Dimmer? > > avrGerd Hallo
treffen. Die Schaltung soll so klein wie möglich sein - von daher würde ich nun doch zu einer Lösung mit AVR tendieren. Von daher meine Frage: Findet sich hier im Forum jemand, der mir für einen AVR (Atmega8) folgendes programmiert: => Einlesen von 4 analogen Ports (0-5V) => Umrechnung der AD Werte
-
Thread
mimalistischer Aufbau um einen Atmega168 zu flaschen
soll den das für ein Murk sein? Man benötigt zum Flashen übrigens keinerlei Zusatzbauteile außer dem AVR, den Leitungen und dem Steckverbinder. Wenn man schon so was tolles baut - ich hoffe das auf der linken Seite der Audiokupplung ist neben dem Widerstand die 100nF Kapazität. Die Lötstellen sind
brilliant! Ja. äh. Wie löst man nun das Henne-Ei-Problem? Wie bekommst du den Audio-Bootloader in den AVR, ohne einmal einen "echten" ISP bemüht zu haben(ohne den Kram fertig kaufen zu müssen)? mfg mf
-
Thread
AVR: mehere schnelle synchrone Signale gleichzeitig einlesen
Hm, vielleicht versteh ich das ja jetzt falsch, aber kannst du nicht einfach einen kompletten IO-Port einlesen? Dann kannst du ja quasi immer 8 Bit gleichzeitig einlesen. Aber das ist zu einfach, ich hab bestimmt was falsch verstanden... Gruß
, vielleicht versteh ich das ja jetzt falsch, aber kannst du nicht > einfach einen kompletten IO-Port einlesen? Dann kannst du ja quasi immer > 8 Bit gleichzeitig einlesen. Aber das ist zu einfach, ich hab bestimmt > was falsch verstanden... ja, das wär einfach - wenn die Meßschieber brav alle
-
Thread
mos6581 SID (C64 Soundchip) für AVR
sein. Im Anhang ist auch ein Schaltplan zur Grundschaltung des SIDs. Der Anschluss an einen AVR wie mein Code ihn haben will steht im C Code im Kopf, sowie hier jetzt: [c] /* * pin connections on atmega 16/32/64/164p/324p/644p/1284p, ... : * SID AVR * ----------------
ich den Zugriff auf RAM und Flash aufteile (bspw. bis 16K RAM, darüber den 6502-Code im Flash vom AVR). Mark
-
Thread
Input Capture bei XMega - welcher pin?
Also: Du hast pro Port (Gruppe von 8 IO Pins) max. 2 Interupts. Jeder dieser beiden Interupts kann durch jeden der 8 Pins aufgerufen werden. Für den Interupt0 gibt es das Register INT0MASK (das gibt es für JEDEN Port
Flanke eines Pins ausgelöst wird, wird im PINnCTRL eingestellt. (Dieses Register existiert 8 mal pro Port (für jeden Pin). Details siehe Datenblatt: IO-Ports - Register description.
-
Thread
AD-Wandler mit zu viel Spannung belasten
die 10V Quelle niederohmig genug ist, wird über die schon angesprochenen internen Diodenstrecken der AVR und die sonstige Schaltung mit den 10V "versorgt". Ob es 10V werden, hängt von der Spannungsversorgung des AVR ab, einer beteiligten gibt eben zuerst auf... Die 4V bei interner AREF ergeben eben 1023 als Wandlungswert, sonst passiert da nichts. Rest steht im Datenblatt des AVR. Gruß aus Berlin Michael
-
Thread
Suche µC mit viel IO und ausreichend Schnittstellenfrequenz
Hi, für ein Projekt brauche ich eine Lösung, mit der ich insgesamt 256 Pins mit 10 kHz einlese und über möglichst wenige serielle Ports rausschiebe. D.h. ich bräuchte für die serielle Leitung mindestens 25,6 MHz wenn ich nur eine nutze, 12,8 wenn ich zwei nutze usw. Ich gehe mal davon aus,
ndrs schrieb im Beitrag #2308579: > ... insgesamt 256 Pins mit 10 kHz einlese ... 256 serielle Signale oder 32 8Bit Ports ? Oder ... > ... und über möglichst wenige serielle Ports rausschiebe. I2C, SPI, LVDS, SERDES, ... Was soll es sein ? Vermutlich liegt die benötigte
-
Thread
Verschiedene Bits effizient auslesen
einer neuen WINAVR Version > ist, dann sehe ich für mich überhaupt nicht die geringste Chance. WinAVR ist wesentlich mehr als ein schlichter Build der avr-Tools: Es gibt zahlreiche Patches, einen Installer, avrdude, simulavr, Doku, Beispielprogramme, etc. die man alle für eine Arbeit an avr-gcc nicht
DDR_FARBE |= 0b11 << PIN_GRUEN; DDR_FARBE |= 0b11 << PIN_BLAU; // Ausgabe von Werten in Port A: PORT_FARBE &= ~(0b11 << PIN_ROT); // alten Wert zu 0 PORT_FARBE |= 0 << PIN_ROT; // neue Bits setzen PORT_FARBE &= ~(0b11 << PIN_GRUEN); // alten Wert zu 0 PORT_FARBE |= 2 << PIN_GRUEN
-
Thread
Was mache ich falsch
Du definierst Port D als Eingang, oder nicht? /* alle Pins von Port D als Eingang */ DDRD = 0x00; ...fragst aber auf Port C ab! if ( PINC & (1<<PINC5) )
Wenn das Programm so mit WinAVR übersetzt wurde und nicht noch extra ein Bootloader irgendwas verkurbelt, dann ist es okay. (Ports sind erstmal alle Eingänge) Ein Fehler außerhalb des Programmes wäre am Wahrscheinlichsten. Wie
-
Thread
Maussensor ADNS 2051 Bild auslesen
ein paar Probleme mit benanntem Maussensor (Datenblatt im Anhang), hier mein Code. [c] #include <avr/interrupt.h> #include <avr/pgmspace.h> #include <stdarg.h> #include <ctype.h> #include <string.h> #include <stdlib.h> #include <avr/io.h> #include <util/delay.h> #define DDR_SCK DDRB /*!< DDR fuer Maus-SCLK */ #define DDR_SDA DDRB /*!< DDR fuer Maus-SDA */ #define PORT_SCK PORTB /*!< PORT fuer Maus-SCK */ #define PORT_SDA PORTB /*!< PORT fuer Maus-SDA */ #define PIN_SDA PINB /*!< PIN fuer Maus-SDA */ #define SCK_PIN (1<<PB1) /*!<
-
Thread
LED Programm
[c] // Target: ATmega16 #define F_CPU 1e6 #include <avr/io.h> #include <util/delay.h> #define debounce( port, pin ) \ ({ \ static uint8
ich PonyProg2000 Und hier das Programm #include <avr/io.h> #include <avr/iom8.h> #include <avr/interrupt.h> #ifndef F_CPU #warning "F_CPU nicht definiert!!!" #define F_CPU 12000000UL #endif int i,a,b,erg; ISR (TIMER0_OVF_vect) { PORTD
-
Thread
SHIFTOUT- Befehl in Bascom geht nicht
Hi/ Lo Signal? Ich habe den Eindruck dass du da gerade Shiftin beschreibst, da es dabei um das Einlesen geht. Ich habe allerdings Probleme mit dem Auslesen.
Shiftin mit ext. Clock abweicht, dürfte Folgendes zusammenpassen: Sender: [code]Clock_Out Alias PortX.0 Ser_Out Alias PortX.1 Shiftout Ser_Out , Clock_Out , B , 0[/code] Empfänger: [code]Clock_In Alias PinX.0 Ser_In Alias PinX.1 Shiftin Ser_In , Clock_In , B , 5 ' <-- samples at falling
-
Thread
LM75 mit Mega88PA auslesen
; DDRB = 0xFF; // use all pins on port B for output DDRC = 0xFF; // use all pins on port B for output PORTB = 0x00; PORTC = 0x00; i2c_init(); // init
Karl Heinz Buchegger schrieb im Beitrag #2481322: > Beim Ablesen der LED die Ports falsch zugeordnet (kann auch ein > optischer Irrtum sein!)? Ja, Ports vertauscht! -> jetzt funzt alles! Das ganze werde ich im nächsten Schritt auf eine 7-Segment-Anzeige bringen. Positive
-
Thread
MCURSES - Mini Curses Bibliothek für Mikrocontroller
als eine Anregung verstanden werden. hier noch ein update der letzten lib: http://beaststwo.org/avr-uart/index.shtml
STM32-spezifisch ist: mcurses-config.h: - Stellt man MCURSES_UART_NUMBER auf 0, wird der USB-Port des STM32F4-Discovery als Virtual COM Port (VCP) verwendet. Das heisst, man benötigt noch die USB-Lib, weil kein UART des STM32, sondern STM32-USB am Micro-USB-Port verwendet wird. Die
-
Thread
ATxMega Stick
Hallo, genau der AVR ISP mkII geht super. Damit teste ich alle Komplettaufbauten (ID auslesen). Der Stcik sowie das Board unterstützen JTAG. Nur auf dem ATxMegaStick ist der JTAG port nicht extra rausgeführt. Er ist auf
Chip45 (http://shop.chip45.com/epages/es10644620.sf/de_DE/?ObjectPath=/Shops/es10644620/Categories/AVR-Microcontroller-Software/AVR-Microcontroller-Tools-Software-AVR-Bootloader/AVR-Microcontroller-Tools-Software-Free-AVR-Bootloader) passt auf jeden Fall auf den Stick, und solange man/frau die Sourcen