-
Thread
2x 7 Segment Multiplexen mit ATmega32 - Grundlagenproblem
: http://www.mikrocontroller.net/articles/AVR-Tutorial:_7-Segment-Anzeige Die Anzeige ist an PortD, PD0 bis PD6 angeschlossen und ein Testprogramm was von 0-9 zählt funktioniert auch. Um mich an das Multiplexing heranzutasten habe ich nun
JTAG abschalten In deinem Brennprogramm gibt es irgendwo einen Punkt mit dem man die 'Fuses' einlesen und brennen kann Fuses einlesen JTAGEN abschalten Fuses brennen und dann sollte der Spuk vorbei sein. Hier noch einmal genauer http://www.mikrocontroller.net/articles/AVR_Fuses
-
Thread
was spricht eigentlich gegen die xmega? Gesperrt
dem AVR Dragon? Ist der nicht gescheit?
CortexM wohl zuviel strom verbraucht, deswegen setzen Microsoft in seinen Surface Pro einen 32Bit AVR ein, und in Samsung Tablets steckt ebenfalls ein 32Bit AVR. schon komisch obwohl Atmel auch einen SAMD20 gehabt hätte aber anscheinend ist ein ARM core nicht so effizient wie ein AVR32. Da hilft auch
-
Thread
Programm vom Atmega 16 auf Atmega 1284P
einen Mosfettreiber steuern. [c] //Bibliotheken einbinden #define F_CPU 8000000 #include <avr/eeprom.h> #include <avr/interrupt.h> #include <avr/io.h> #include "lcd-routines.h" #include <stdlib.h> #include <util/delay.h> //Pinbelegung #define MosfetDriver1_PORT PORTD //OC2 #define
Aber ich kann nichts finden. [c] //Bibliotheken einbinden #define F_CPU 8000000 #include <avr/eeprom.h> #include <avr/interrupt.h> #include <avr/io.h> #include "lcd-routines.h" #include <stdlib.h> #include <util/delay.h> //Pinbelegung #define MosfetDriver1_PORT PORTD //OC2 #define
-
Thread
pwm multiplexen, geht das?
Man könnte auch drei Schieberegister hintereinanderhängen, dann brauchst du nur 3 Ports. Das Laden von allen Werten braucht dann 24x2 Takte + Overhead 10 Takte, macht 110 Takte, bei 8bit Auflösung kämst du dann noch auf maximal 1kHz mit einem AVR. Je nach Anwendung ist das ausreichend
Byte; Counter: array[0..2] of Byte = (0,0,0); FarbPhase: Byte = 0; procedure TimerISR; var PortValue: Byte; begin // 1.) PortValue = 0; for I = 0 to 7 do begin PortValue = PortValue + PortValue; if DisplayRAM[I, FarbPhase] < Counter[FarbPhase] then PortValue = PortValue
-
Thread
Schrittmotor Softstart
PortD und nicht PIND) einlesen, ein 'and &B11100001' und dann 'or' mit dem Lookupwert. Das ganze dann ausgeben. MfG Spess
Bits verknüpfen. Warum soll ich die Ports einlesen? Da hängt ja eh nix dran außer Motor.
-
Thread
Flankenauswertung für zwei Porteingänge
Timerzeit ausgelesen werden. Vorgesen sind PIN0 und PIN1 an PORTB für die Eingänge. Ich benutze AVR Studio 4 (Version4.1.4)das ganze in C. Vieleicht kann mir jemand helfen und ein Beispiel Programm mal schreiben. Bin verzweifelt! Danke im vorraus
DDRA = 0x00; //PortA als Eingänge deklariert DDRB = 0xC0; //PortB als Eingänge deklariert DDRD = 0xFF; //PortD als Ausgänge deklariert ACSR = 0x80; //Analog Comperator abgeschaltet
-
Thread
PCINT: Flag Register für die Pins?
Und-Verknüpfung, ein Vergleich und ein bedingter Sprung. > Aber da muss ich mich erst näher einlesen um dies in die IF besser zu > integrieren. Die muss der Compiler integrieren, nicht du.
doch jeden PCINT gleich passend. JAIN PCINT2_vect ist der PinChangeInterrupt eines anderen Port... Beim 2313 gibt es den PinChangeInterrupt "nur" an PortB. Wenn ein anderer AVR z.b. PinChangeInterrupts an mehreren Ports hat (PortC, PortD....) dann hat jeder eigene Port seinen Interrupt Vector.
-
Thread
Werte aus zwei Ports "vereinen"
Die Pullups für Port R sind aktiviert? Gruß Jobst
. Es ist mir nur aufgefallen. Es zu überprüfen, überlasse ich Dir. :-) Was passiert, wenn Du PortR mal komplett und direkt auf PortE ausgibst? Verhält es sich wie gewünscht? Gruß Jobst
-
Thread
AVR: unsigned 24 bit auf 3 Ports verteilen
inline-Assembler oder einer eigenen Assembler-Routine kannst du die Werte direkt aus den Registern in die Ports schreiben. Schneller gehst es nicht. Oliver
auf dem stack liegen. Bei irgendwelchen Compilern für irgendwelche Zielplattformen ja. Beim avr-gcc mit einem uint32-Funktionsparameter wie im oben gezeigten Code liegt der immer in den Registern. Oliver
-
Thread
0-10v in Pwm umsetzen für Konstantstromquelle
Eingangsignal 1-10V müsste doch mit zwei 1k E12 hin hauen oder? Dann mit Bascom ADC die Spannung einlesen und dann per Pwm ausgeben. Habe heut Nacht die bascom avr tutorial auf youtube durchgemacht. Sprich auch die folgen mit der pmw und adc aber wie die Erkenntnisse miteinander verbinden????? Weil das Einlesen ist die eine Sache aber dann die Pmw Ausgabe anhand der ermitteltem Werte die andere :-(
-
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
-
Thread
Taster - LED Beispiel
// 7. und 8. PIN vom Port D als Ausgang DDRC &= ~(1<<0); // 1. PIN vom Port C als Eingang PORTC |= (1<<0); // internen Pull-up einschalten a = PINC & ~(1<<0); if(a != 0) // wenn Taster gedrückt {
den Taster raus nehme. (LED8 leuchtet permanent). Was genau muss ich noch ändern/hinzufügen? Das AVR GCC Tutorial hab ich schon gelesen und das beantwortet nicht meine frage. Sitze schon seit 2 Abenden daneben [c] int main (void) { DDRD |= (1<<7) | (1<<6); // 7. und 8. PIN vom Port
-
Thread
µC über Webinterface ansteuern (Lan und / oder WLAN)
Webserver einsetzen will, der selbst das Web-Interface bereit stellt. Schau mal: http://stefanfrings.de/avr_io/index.html Dann brauchst Du nur noch eine Ethernet zu WLAN Bridge, die kann man fertig kaufen. Andere Möglichkeit: Du besorgst Dir ein WLAN Modul mit seriellem Port (wie dieses: http://www.digieurope.de
PIC Controllern. Zu ARM Einsteigerboards gibt's hier viele längere Threads. Persönlich ist mir die AVR Lösung zu schwach, du wirst immer viel Zeit in die Optimierung stecken müssen wg wenig RAM. Die 8051er mit denen du gelernt hast sind ähnlich wie die AVR. Es gibt zwar viele moderne Derivate, aber die
-
Thread
externes RAM per ASM ansteuern
*** Read: sbi PortE, 1 ; ALE auf high clr temp out PortC, temp ; Ausgabe High Adressen ldi temp, 0x0F out PortA, temp ; Ausgabe Low Adressen cbi PortE, 1 ; ALE auf low, Adresse wird
Jens G. schrieb im Beitrag #7716094: > Weil sowohl PortA als auch IO des RAM gleichzeitig kurz "outputen" Das kann eigentlich nicht sein, da ich DDRA auf Eingang stelle, bevor ich die Daten einlese.
-
Thread
Einfaches Programm ATtiny2313
PORTd, r16 ; r16 ins IO-Register PORTB ausgeben loop: in r16, PIND ; an Port D anliegende Werte (Taster) nach r16 einlesen rol r16 rol r16 out PORTd, r16 ; Inhalt von r16 an Port B ausgeben rjmp loop ; Sprung zu "loop:" -> Endlosschleife
PORTd, r16 ; r16 ins IO-Register PORTB ausgeben loop: in r16, PIND ; an Port D anliegende Werte (Taster) nach r16 einlesen rol r16 rol r16 out PORTd, r16 ; Inhalt von r16 an Port B ausgeben ldi r16, 0b00011000 out PORTD, r16 rjmp
-
Thread
Code fehler bei 74hc165 kette (einzelner geht)
_PORT |= _BV(CLOCK165_PIN)) #define CLOCK165_low() (CLOCK165_PORT &= ~_BV(CLOCK165_PIN)) //////////////////////////// #define PARALLEL165_PIN PA4 #define PARALLEL165_PORT PORTA #define PARALLEL165
_PORT |= _BV(CLOCK165_PIN)) #define CLOCK165_low() (CLOCK165_PORT &= ~_BV(CLOCK165_PIN)) //////////////////////////// #define PARALLEL165_PIN PA4 #define PARALLEL165_PORT PORTA #define PARALLEL165
-
Thread
Drehimpulsgeber mit Rasterstellung bei 00/11 auswerten
befinden sich die Graycode werte in einem Integer, da ich die Encoder über zwei schieberegister einlese. rotData kann aber auch einfach in Port des uc sein. Der Code macht im prinzip genau das gleiche wie der Orginalcode des Threads, wahrscheinlich lässt sich da noch einiges vereinfachen, laufen und
{ struct { unsigned int speicher_A :1; unsigned int speicher_B :1; }encoder; if(PF.PORT.BIT.B1 == PF.PORT.BIT.B2) { encoder.speicher_A = PF.PORT.BIT.B1; encoder.speicher_B = PF.PORT.BIT.B2; } if(PF.PORT.BIT.B1 ^ PF.PORT.BIT.B2) //Bits unterschiedlich? { if(encoder.speicher_B
-
Thread
PWM-Pin von AVR deaktivieren
das Sende-Pendant von [[IRMP]] habe ich folgende Fallunterscheidungen im Code: [c] if defined (__AVR_ATtiny44__) || defined (__AVR_ATtiny84__) // ATtiny44/84 uses OC0A = PB2 or OC0B = PA7 # if IRSND_OCx == IRSND_OC0A // OC0A # define IRSND_PORT_LETTER
#elif defined (__AVR_ATtiny45__) || defined (__AVR_ATtiny85__) // ATtiny45/85 uses OC0A = PB0 or OC0B = PB1 # if IRSND_OCx == IRSND_OC0A // OC0A # define IRSND_PORT_LETTER
-
Thread
DHT22 liefert eigenartige Werte
#define LOW() PORT&=~(1<<DQ) #define HIGH() PORT|=(1<<DQ) #define PIN_STAT() (PIN&(1<<DQ)) char data[5]; void dht_reset(); void dht_read(); #endif /* DHT_H_ */ [/c] main.c: [c] #include <avr/io.h>
des Codes ein. Dieser ist ein wenig angepasst worden. Zum einen kann er nun DHT11 und DHT21/22 einlesen (und erkennen) und zum anderen kann er zwei Sensoren am gleichen Port (aber unterschiedlichen Pins) einlesen. Gespeichert werden die Daten in der Struct und kann durch die Funktionen ausgelesen werden
-
Thread
Eingänge einlesen in C
Hallo Leute, kann mir jemand die Syntax für das Einlesen eines Eingangs als Port und Pin sagen und wie ich diese innerhalb eines Programms als if, while und else weiterverarbeiten kann. Ich habe zwar einige Syntaxen, die aber nicht gehen: if (()P6.1
Probier's mal mit while(port6.in.pin1);
-
Thread
Audio Signal
Hallo Leute! Folgende Problemstellung: Ich möchte mit einem AVR (8535) und einem Grafik-LCD(128x64) einen kleinen 16 Band EQ bauen. (Progge im C - Codevision) Dazu muss ich ja die Analogen Werte über ADC einlesen und FFT Analyse machen. AIN und GLCD sind kein
Doppelbeitrag... Ich will im Grunde so was wie im Anhang ausgeben... (und das Original Signal mit dem AVR einlesen) Nur eben 16 "Balken" die sich bewegen Ausgeben und verändern will i gar nix Ich hoffe jetzt is klarer was ich meine
-
Thread
ADC ATXMega256A3 initialisieren
// enable freerun Mein noch nicht funktionierender Code sieht jetzt so aus: [c] #include <avr/io.h> #include <C:/Program Files (x86)/Atmel/Drivers/AVR1313/port_driver.h> #include <C:/Program Files (x86)/Atmel/Drivers/AVR1313/port_driver.c> #define ADC ADCA #define USER_PORT PORTA #define
doch ein Eingang sein und nicht ein Ausgang. Die anderen Kanäle 1-7 sind auf 0V. [c] #include <avr/io.h> #include <C:/Program Files (x86)/Atmel/Drivers/AVR1313/port_driver.h> #include <C:/Program Files (x86)/Atmel/Drivers/AVR1313/port_driver.c> #define ADC ADCA #define USER_PORT PORTA #define
-
Thread
Richtiges C++ hardwarenah
: > Sag mal an, wie Du ein Portbit setzt! > Wehe, das geht über 'sbi PortA,0' hinaus. Würde ich übrigens in C++ genau so schreiben wie in C und wie es üblich ist. Und Oh, sieh mal, wass der Assembler output draus macht, [c] #include <avr/io.h> int main(void) {
über-Alles-Optimierung bekommt. Wieviele Versionen von Library gibt es denn für die verschiedenen AVR's. Für jeden eine, oder eine, die zur Laufzeit entscheidet ob der Port im IO- oder MEM-Bereich liegt. ASM hab ich benutzt, als es keine bezahlbaren Compiler gab. Anfangs gab's noch nicht mal Assembler
-
Thread
welchen AVR?
verschiedene Temperatueren auslesen und am Display anzeigen ... Vielleicht will ich noch uebern Parallel-Port oder Serial-Port den Compi anschliessen, so dass dieser auch Daten am Display ausgeben kann. Die Frage ist nur, welchen Atmel soll ich nehmen? Ich brauche auf jedenfall einen mit mehreren AD-Wandlern
verschiedene Temperatueren auslesen und am > Display anzeigen ... > Vielleicht will ich noch uebern Parallel-Port oder > Serial-Port den Compi anschliessen, so dass dieser auch Daten > am Display ausgeben kann. > > Die Frage ist nur, welchen Atmel soll ich nehmen? Ich brauche > auf jedenfall einen mit mehreren
-
Thread
AVR Basis-Modul
ohne immer irgendwas löten zu müssen. Konkret habe ich folgendes im Sinn: - Platine so wie im AVR-Tutorial - ISP-Programmer von dem Link im Tutorial - Jedem I/O Port an eine Stiftleiste rausführen (6pol. PortB, 6pol. PortC, 8pol. PortD) Nun meine Frage: wenn ich AGND und AVCC direkt auf der
schon integriert, nur leider kommt da ein 12V Signal raus. Wie kann ich das denn nun am Besten an nen AVR-Port anschließen? Einfach nen Optokoppler für 12V<>5V und direkt dran?
-
Thread
Vorgehensweise: Mehrere PWM einlesen (Tiny2313)
Evtl. ist die APPNOTE AVR135 was für dich, zumindest zum inspirieren lassen: http://www.atmel.com/Images/doc8014.pdf verwendet aber ICP und hat nur einen Kanal...
Interrupt Pins, 2 Timer) Bei meiner Version reicht da schon ein normaler Pinchange Interrupt über PortB, ich errechne mir die Differenz zwischen der sinkenden und der steigenden Flanken nach dem PWM Abfall und somit kann ich dann halt den ganzen Port nutzen - ist natürlich relativ ungenau aber reicht
-
Thread
Dip-Schalter an Port-Pins abfragen?
s/DIP_BIT(PORT/DIP_BIT(PIN/g
Sind beim AVR die Eingänge nicht PIN anstatt PORT?
-
Thread
µCke Microcontroller Mücke (Atmel Tiny13)
Mal eine kurze Frage: Die Mücke erzeugt das Tonsignal ja nun eigenständig..., aber, ...mit welchem AVR könnte ich z.B. das Miauen meiner Katze, welches ich vorher aufnehme, rippe und als mp3 abspeichere, einlesen und per Zufallsgenerator ca. alle 20 Min ausgeben?
eine kurze Frage: > Die Mücke erzeugt das Tonsignal ja nun eigenständig..., aber, > ...mit welchem AVR könnte ich z.B. das Miauen meiner Katze, > welches ich vorher aufnehme, rippe und als mp3 abspeichere, > einlesen und per Zufallsgenerator ca. alle 20 Min ausgeben? Das hat nix mit diesem Thread
-
Thread
Adressübergabe einer Variable an eine Funktion
jedoch sollte die Funktion jetzt noch nichts machen.... [c] #define F_CPU 16000000 #include <avr/io.h> // Header-Datei f. IO-Register #include <avr/interrupt.h> // Header-Datei f. Interruptfunktion #include <stdint.h> // Header-Datei f. standard Datentypen #include <avr/pgmspace.h
Prototypes ********************************************************************************/ void initPort(void); // Inizialisierung der Portpins int read_taster(int tasterpin); // Einlesen der Taster und zustandsvariable setzen void InitTimer0(void); // Inizialisierung des Timers
-
Thread
Probleme bei Programmierung von Lichtschranken-Stoppuhr
PortB pop r16 ;Wert füt PortD ret [/avrasm] MfG Spess
Programmierung. Spess hat es bereits geschrieben, wenn ich dir noch einmal erkläre, warum ich die Ports immer erst einlese, dann die Bits setze und dann wieder ausgebe, werd ich mich nicht an den vorgeschlagenen Code von Spess halten. [avrasm] ;*************************************************** ;
-
Thread
LCD ansteuern, fragen zu tutorial in assembler
Hmm, bei dem AVR GCC tutorial ist es natürlich für den AVR...somit müsste ich mich überall durchwursten. Ich glaube da ist es schlau mit Anleitung erstmal selber zu programmieren. Das AVR GCC tut ist für meine C kenntnisse
werden die Pins gesetzt. LCD_PORT &= 0xF0; LCD_PORT |= 0x03; LCD_PORT &= ~(1<<LCD_RS); // RS auf 0 -> Enable Puls lcd_enable(); _delay_ms(5); ->Warten usw..... jetzt kannst du das doch
-
Thread
Inline Assembler Wieso Contraints, ClobberList etc?
anzusprechen ist... dafür brauchst du die Listen. http://www.rn-wissen.de/index.php/Inline-Assembler_in_avr-gcc http://www.nongnu.org/avr-libc/user-manual/inline_asm.html
A. K. schrieb im Beitrag #2609635: > Es geht nicht um die Breite des Ports, sondern um die Breite der Adresse > des Ports. Und die beträgt beim IN Befehl 6 Bits. [c] unsigned char reg = 0; while(1) { asm volatile( "in %0 %1" : "=d" (reg) : "I" _SFR_IO_ADDR
-
Thread
RGB-LED Ansteuerung mittels PWM in AVR Studio 4 (C-Programmieren)
Pulsweitenmodulation zu realisieren. Als Mikrocontroller verwenden wir einen Atmega 328, nebenbei arbeiten wir mit AVR Studio 4 und einem AVR Dragon. Für das Projekt soll der ADC des uC verschiedene "Potentiometerstellungen" einlesen und diesen verschiedene Werte zuordnen( welche dann für die "Stärke" der 3 Farben stehen
und eine dazugehörige main.c, die ein Studienkollege erstellt hat: #include <avr/io.h> #include <util/delay.h> #define LED_PORT PORTC #define LED_PIN 0 #define LED_off() LED_PORT&=~_BV(LED_PIN) #define LED_on() LED_PORT|=_BV(LED_PIN) int main (void) { DDRC
-
Thread
Atmega16 und spi bus Gesperrt
printf auf float with precision unsigned char kan; // Input/Output Ports initialization // Port A DDRA=0x00; PORTA=0x00; DDRD=0x60; //Leds // Port B // the /SS pin is set as an output
Einstellung f. printf auf float with precision unsigned char kan; // Input/Output Ports initialization // Port A DDRA=0x00; PORTA=0x00; DDRD=0x60; //Leds // Port B // the /SS pin is set as an output // with
-
Thread
PIN als Ein- und Ausgang nutzen.
Ich habe das Problem das ich bei einer fertigen Platine nun doch eine kleine Eingabe beim Start einlesen muß. Alle Ports am ATMEL sind belegt. Ich habe allerdings 2 Ports wo LED's dran sind und da suche ich jetzt nach einer Lösung das ich beim anlegen der Betriebsspannung H/L einlesen kann, danach
kein Problem, ca. 3,3k an TxD und dann eben L oder H dran. Vor dem UART initialisieren den Pin einlesen und gut. Danach setzt sowieso der UART den Portpin. Die 3,3k zusätzliche Last steckt der AVR TX weg, wenn Du nicht gerade am obersten Ende mit der Bauddrate bist. Hochohmiger geht sicher auch, im
-
Thread
ADC-lesen debuggen
Du kanst natürlich an eine Port einfach 8 LEDs hängen, den ADChigh wert z.B. drauf ausgeben, dann mußt du nurnoch mit dem Windowstaschenrechner den Binärwert umrechnen. Also VDD ---->|-- [1kohm]--AVR
Falls du das ASM-Programm mit AVR-Studio geschrieben hast, dann kannst du es mit dessen Simulator simulieren. Dann siehst du, wie die Werte in die Register übernommen werden. Bei realer Hardware ist Ausgabe auf Ports mit LEDs schonmal
-
Thread
Eingänge/Ausgänge 24V
dem AVR verbunden) oder sollen sie selbst auf der Basis eines AVR arbeiten?
Muss abwarten wies weiter geht. Der MCP23017 hat einige Register die man so konfiguriert, dass Ports oder Pins Ein-/Ausgänge sind und wie sie sich verhalten sollen. Mit deinem AVR wirst du irgendwie Bytes auf den I2C-Port schreiben bzw. von dort einlesen können. So konfiguriere ich (sinngemäß
-
Thread
AVR-ASM Knobelei : Bitmanipulation am LCD im 4-Bit Mode
Hatte auch mal so etwas ähnliches, beim ATTiny2313. Danach habe ich es verglichen, da der LcdPort auch Steuerleitungen hatte, müßte ich Port einlesen, AND Steuerleitungen, OR Dataleitungen - am Ende war es mit einzelnen bits viel übersichtlicher.
läuft) r26 'Rotationsregister r25 'maskiertes Port_Schattenregister r1 'hilfsregister für verknüpung des ersten nibbels CLC 'der ordnung halber IN r25,PORTA 'port einlesen ANDI r25,0xC3 'maskieren LD r26,
-
Thread
Mit Atmega32 Meter auswerten
einbinden der bibliotheken #include <util/delay.h> //einbinden der bibliotheken #include <avr/interrupt.h> //einbinden der bibliotheken #include <math.h> //einbinden der bibliotheken #include <avr/iom32.h> //einbinden der bibliotheken #include <avr/eeprom.h
Hans schrieb: > DDRD = 0xFF; // D Ports als Ausgänge festlegen für LCD > > DDRB = 0xFF; // B Ports als Eingänge festlegen Fifty-Fifty, aber vielleicht auch nur 50% ;) avr
-
Thread
Atmega 8 + dallas 18s20 + Neuling (never ending story)
wahrscheinlich für euch ein klacks, aber 2 Bücher helfen mir leider hier nicht weiter. Franzis: AVR Mikrocontroller in C-Programmieren Elektor: AVR Hardware und C-Programmierung in der Praxis Viele Grüße... aus dem Münsterland
den Port per Befehl auf High oder Low ziehen. Hier wird nur mit dem DDR - Register auf Low oder High umgeschalten nicht mit dem Port Befehl. // Liest 1-Bit uint8_t DS18S20_readbit(void) { volatile
-
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
ATiny im sleep mode durch eine von zwei Tasten aufwecken
Hallo, Zu deinen Fragen: 1) Das was und wie steht in Dein Datenblatt deines AVR µC. Dort steht in einer Tabelle welcher Interrupt welchen Mode wieder "aufwachen" lässt. Ok ? Das wissen wir leider nicht. 2) Nach dem Aufwachen und sperren der Tasterinterrupts, wird in der
suchst sind u.a. powerdown mode und pin change interrupt. Was du vor hast ist mithilfe des GCC-AVR tutorials ( interrupt und sleepmodes) und des datenblattes in 10-15 Zeilen code zu bewerkstelligen
-
Thread
Weigu AVR-Assemblerkurs Modul A
;Sensor 3 Wert einlesen ld r1,y ;Sensor 1 Wert einlesen ldd r5,y+4 ;Sensor 5 Wert einlesen out PORTD,r3 ;Sensor 3 Wert ausgeben out PORTD,r1 ;Sensor 1 Wert ausgeben
765 Takte. G1=0 ist als 256 anzusehen. t=G1*3 finde ich ist eine gut zu merkende Grundlage für die AVR-Assemblerprogrammierung, wenn es um 8-Bit-Zeitschleifen geht. Das ist nicht aus meinen Überlegungen entstanden, sondern hierher : http://www.avr-asm-tutorial.net/avr_de/zeitschleifen/delay8.html
-
Thread
Software Profibus DP-Slave in C
Bin an einer Implementierung für AVR interessiert, hätte auch die nötige Hardware (315-2DP) neben mir am Schreibtisch stehen. Müsste nur den AVR daran anschliessen, bzw. den RS485 Bus anbinden.
AVR Studio-4 without error and made challenge for me. Gruß Sony
-
Thread
AVR PortG bei ATmega128
ganz. Aufgabenstellung: ich möchte bei einem ATmega128 von PORTG, den Eingang Drei, also PING.3 einlesen. Alledinsg bekomme ich beim Compilieren unter CodevisionAVR immer folgende Fehlermeldung: the first argument of the '.'operator must be of 'struct' or 'union' type So, ich habe im Source den
Hi, danke für die Antwort; das nimmt mein CodevisionAVR auch nicht - leider. Jetzt meldet er, dass er 'PG3' nicht kennt. Kannst du mir vielleicht noch sagen, wo eines eine Mapping Tabelle für den ATmeg128 gibt. Dann kann ich mir die Adresse des Ports
-
Thread
BASCOM AVR Bedeutung
so gehts ------------------ Config PORTA = Output Config PORTC = Output Config PORTE.4 = Output Config PORTE.5 = Output Config PINB.5 = Input Set PORTE.4 Set PORTE.5 ------------------- so geht's nicht ------------------- Config PINE.4 = Output Config PINE
Compiler gibt halt die Schlüsselworte vor. Beispiel: Portpin Initialiserung Eingabe --- '*** Port und Pin für den DCF77-Empfänger Dcf_empfaenger Alias Pinb.1 'HIER DEN Port-IN-Pin EINTRAGEN Config Dcf_empfaenger = Input '*** Portpin einlesen EineVariable
-
Thread
Attiny461A am STK500 flashen
ISP-Frequenz von 115.2 kHz sinnvoll. Außerdem sieht es nicht so aus, als ob du das Connect RST on PORTE to PB7 on PORTB Connect XT1 on PORTE to PB4 on PORTB richtig verdrahtet hast. MfG Spess
Hi >Woher ist diese Tabelle? Aus der AVR-Studio Hilfe zum STK500 MfG Spess
-
Thread
Wieder mal Tastenabfrage geht das auch so?
optimaler. Aber dennoch gut auch sowas als Idee zu haben. (Ich programmiere nur Assembler mit AVR Studio)
ob einfach nur die normale Aktion wiederholt wird. Sollten die Taster mal nicht alle an einem Port hängen, so kann man auch beide Ports (in Temp-Register) einlesen und ein paar Bits mittels BST/BLD ins zu verwendende Register kopieren. Dieser Overhead fällt bei Flash-Verbrauch und Prozessorbelastung
-
Thread
Schreibweisen
sry dass wird mir irgendwie zu bunt.... ich bestell mir ne port erweiterungs platine für mein myAVR board MK2. dieses stecke ich an mein board und schaue auf deren homepage nach wie man die ports anspricht. finde ein beispielscript und versuche mich einzulesen
schrieb im Beitrag #2622270: > sry dass wird mir irgendwie zu bunt.... > > ich bestell mir ne port erweiterungs platine für mein myAVR board MK2. > dieses stecke ich an mein board und schaue auf deren homepage nach wie > man die ports anspricht. > > finde ein beispielscript und versuche mich
-
Thread
AVR Einstieg / Probleme mit Programm Interrupt
* * Created: 2012-11-14 17:13:01 * Author: dsn */ #define F_CPU 3686400 #include <avr/io.h> #include <util/delay.h> #include <avr/interrupt.h> int WaitInMS; void GetWaitTime() { for (int i = 0; i < WaitInMS; i++) _delay_ms(1); } int main(void) { DDRB = 0b111111
allerdings nur PORTC Pin 4 PORTB Pin 1 bleibt dagegen aus, warum ist dem so? Es sind doch unterschiedliche Ports die ich dort setze.