-
Thread
ATMega16 mehrere Taster an INT0
richtig. Alle Taster springen in das gleiche Interrupt und im Interrupt musst du dann den Eingangs-Port einlesen und bei Bedarf maskieren. Am besten einfach den Port in ein Byte schreiben und dann kannst du in deiner Main, wo dann die Auswertung stattfindet, auf den richtigen Taster maskieren. Dann hast
: > Alle Taster springen in das gleiche Interrupt und im Interrupt musst du > dann den Eingangs-Port einlesen und bei Bedarf maskieren. Am besten > einfach den Port in ein Byte schreiben und dann kannst du in deiner > Main, wo dann die Auswertung stattfindet, auf den richtigen Taster > maskieren
-
Thread
SPI emulieren
__((__packed__)); #define SBIT(port,pin) ((*(volatile struct bits*)&port).b##pin) #define SPI_CLK SBIT( PORTB, 0 ) // clock #define SPI_CLK_DDR SBIT( DDRB, 0 ) #define SPI_MOSI SBIT( PORTB, 1 )
RTFM "External Interrupts" oder http://www.gidf.de/AVR+External+Interrupts
-
Thread
mit kurzen Impulsen schalten / gegenseitig entriegeln / Attiny2313
im empfangenen Byte? - ja... ;es ist das erste Byte des Telegramms in r1,porta ;Port einlesen, eor r1,r0 ;Bit toggeln out porta,r1 ;und zurückschreiben lpm r0,z+ ;Bitmuster PortB holen in r1,portb ;Port einlesen,
. rjmp job_neues_byte3 ;ja, Porteinschalten überspringen... in r1,porta ;Port einlesen, or r1,r0 ;Bit setzen out porta,r1 ;und zurückschreiben lpm r0,z+ ;Bitmuster PortB holen in r1,portb ;Port einlesen,
-
Thread
NGW100 (AVR32) wer kennt sich mit der Programmerstellung für standard Linux aus?
Hat AVR32öLinux evt auch ein Realtime Scheduler Kernel Modul?
Bei Atmel selbst gibts entsprechende Application Notes im Downloadbereich bei der AVR32 Architektur, die auf die Einbindung in die AVR32 toolchain zwecks compilieren deines Programms (C oder C++) sowie die Verwendung von GPIOs im user space eingehen. Zeitaufwand fürs Einlesen und
-
Thread
AVR eigene Pins verbinden?
#3455579: > Kann ich einen eigenen Pin, welcher getoggelt wird am gleichen Prozessor > am ICP einlesen? Du musst nur an eins denken: die Erfassung der Flanke am Eingang erfolgt beim AVR /vor/ dem Umschalten des Ausgangs. Folgendes funktioniert daher nicht: [c] PORTB |= (1 << 3); // aktivieren
------------------------------ #include <stdint.h> // Standard Int-Datentypen #include <avr/io.h> // avr Header File für IO Ports #include <avr/interrupt.h> // Interrupt Vektoren #include <inttypes.h> // Makros für int Datentypen // -----------------------------------
-
Thread
mit Bascom über rs232 Frequenz aus einen Frequenzzählermodul auslesen.
Kühnel studieren. https://www.bod.de/buchshop/programmieren-der-avr-risc-microcontroller-mit-bascom-avr-claus-kuehnel-9783907857144/
bekomme , Ich wollte in Version 13 den Vorschlag von https://halvar.at/elektronik/kleiner_bascom_avr_ku... realisieren, das auch das einlesen des Strings einen Interupt auslöst. doch ich erhalte entweder ein schwarzes Display oder ab und zu mal Müll. Hat jemand eine Idee was ich falsch mache
-
Thread
AVR-Pin als Eingang+Ausgang beschalten
an euch, hoffe zwar, dass ich da keinen Denkfehler drin hab, aber zu Sicherheit... ;) Will einen AVR-Port zu Testzwecken so beschalten, dass ich ihn sowohl als Ausgang als auch als Eingang nutzen kann ohne ihn kaputt machen zu können. Genauer gesagt, ich will ihn schalten können, aber ebenso auch
Wieso kann ich mir da nen Widerstand sparen, und welchen? Über die sonstige Ansteuerung eines AVR-Ports bin ich im Bilde ;)
-
Thread
USB Joystick auswerten
Hardware ist recht simpel, einfach D+ und D- an einen AVR-Port, einer der Pins muss interrupt-fähig sein. Für die Software kannst du dir z.B. http://www.xs4all.nl/~dicks/avr/usbtiny/ anschauen, den Sende-Teil musst du natürlich komplett deaktiveren.
Was kann der ADC einlesen? www.gidf.de/ADC
-
Thread
Über UART Buchstaben einlesen und PORT setzen
Hallo Leute, Ich habe eine Atmega 32 und dort die RS232 Schnittstelle programmiert, hardware-mäßig aufgebaut und über ein kleines Testprogramm Daten eingelesen und wieder ausgegeben. Jetz hab ich allerdings ein Problem und zwar möchte ich untersuchen ob sich ein a im UDR befindet und dann einen Pin am PORTB setzen. Überprüfe ob ein a über Uart eingelesen ja--> LED einschalten Hier mein Code: [c] #include <avr/io.h> #include <util/delay.h> #include <ctype.h> // ---------- Konstantendefinitionen ---------------------------------- const char startText[] = "UART Test\r";
-
Thread
8Bit Datenleitung auf 2 Ports splitten, für LCD, bidirektional
; } unsigned char einlesenP(void) // einlesen in den Byte vom Port C und Port A { unsigned char bitsVar, bitsA = PINA, bitsC = PINC; bitsA &= ~((1<<PA7)|(1<<PA6)); bitsA >>= 6; bitsC &= 0b11111100; bitsVar
Beim Einlesen machst du dir hier deine gewünschten Daten kaputt: [c] bitsA &= ~((1<<PA7)|(1<<PA6)); [/c] Beim schreiben musst du mal überlegen was passiert wenn im Vorfeld ein Bit im jeweiligen PORT-Register
-
Thread
Schalter einlesen Entprellen notwendig (kein Taster)
Guten Abend zusammen, ich möchte 4 Schalterzustände einlesen. Die Schalter hängen an meinem Mega8 an Port D und zwar PD0...PD3 und schalten Masse an den Port. Schalter offen liegen am Port 5V an (interner Pullup). Mich interessiert nicht der akute Zeitpunkt
vorstellen? > Dann wäre das konrekt im meinem Vorhaben so zu erledigen: > > [c] > uint8_t WertPORT =0; > if get_key_state( ( ( 1<<PD0 ) |( 1<<PD1 ) |( 1<<PD2 ) |( 1<<PD3 ) )){ > // hat sich irgendein Status der 4 Tasten geändert > WertPORT = PIND; // Port einlesen > [/C] [C] WertPORT=
-
Thread
Verarbeitung/Weitergabe dreier gewandelter Messwerte
nicht.... Habe die unklare Stelle kommentiert...In der Sende Funktion. Die Meldungen: ../BESCHL_AVR_SENDET_XYZ_WICHTIG.c:89: error: syntax error before numeric constant ../BESCHL_AVR_SENDET_XYZ_WICHTIG.c: In function `sende': ../BESCHL_AVR_SENDET_XYZ_WICHTIG.c:95: error: `l' undeclared (first use in this function) ../BESCHL_AVR_SENDET_XYZ_WICHTIG.c:95: error: (Each undeclared identifier is reported only once ../BESCHL_AVR_SENDET_XYZ_WICHTIG.c:95: error: for each function it appears in.) Schöne Grüße!!! [c] #include
-
Thread
AVR: Variable einem Ausgangsport zuweisen
Hallo, stehe eben auf dem Schlauch.. Versuche den Inhalt einer Variablen, einem Port zuzuweisen. Das Programm (ein Testprogramm), soll den Zustand des Ports D einlesen (Taster) und auf Port B ausgeben. Das ganze teste ich via STK500-Board, AVR: ATmega8 Problem: Die LEDs leuchten
Norbert Martsch schrieb im Beitrag #2226512: > Das Programm (ein Testprogramm), soll den Zustand des Ports D einlesen > (Taster) und auf Port B ausgeben. !!!
-
Thread
Schieberegister ersetzen
zum 1Mbit/s auch ein SYNCHRONER Takt existiert. Damit man das mit einem kleinen Mikrocontroller ala AVR verarbeiten kann, braucht er ein wenig Hilfe, denn die 1Mbit/s mit EXTERNEM Takt LÜCKENLOS einlesen ist schwierig bis unmöglich. Später kam von dir die Aussage, daß der Takt ASYNCHRON zum Datenstrom
avr schrieb im Beitrag #7140366: > Falk B. schrieb: >> denn die 1Mbit/s mit EXTERNEM Takt LÜCKENLOS einlesen ist schwierig bis >> unmöglich. > > In C würde ich zustimmen, in Assembler ist es einfach
-
Thread
Ansteuerung von WS2812B LEDs erstaunlich einfach
meiste Zeit langweilt er sich in der Warteroutine. Eine einfache Erweiterung des Codes wäre das Einlesen einer IR- oder Funkfernbedienung entweder ohne Rücksicht auf Verluste, d.h. das Einlesen der Fernbedienung stört das Schreiben auf die LEDs oder man sperrt während des Einlesens das Updaten der LEDs
library/PDK_WS2812.c [code] 10$: sl _PDK_WS2812_writebyte_PARM_1+0 ;0 set1 s(WS2812_PORT),#(WS2812_PIN) ;1 swapc s(WS2812_PORT),#(WS2812_PIN) ;2 set0 s(WS2812_PORT),#(WS2812_PIN) ;3 dzsn a goto 10$ ;6 [/code]
-
Thread
DCC Decoder
, und alle Andere die sich mit diese Materie auskennen Ich habe mir nach deiner Empfehlung dass AVR Studio Version 3.56 installiert. Wenn ich jetzt eine ASM Datei versuche einzulesen habe ich dass Problem es gibt kein Menuepunkt wo ich diese Datei einlesen kann. Ich finde nur bei FILE / OPEN als
Hi Borsti87, stell mal beim AVR-Studio bei den Assembler Options AVR Assembler auf Version 1. Na ja, ist schon eine Weile her als ich den Code geschrieben habe... Viel Spass, Georg
-
Thread
Midi Drumpad mit Piezo Schallwandler
PIND ist ausschließlich zum Einlesen des Ports (Port muss als Eingang gesetzt sein!) PORTD ist nur zur Ausgabe auf den Port (Port als ausgang)
Programm? Der Code ist im Prinzip der gleiche wie im ersten Beitrag nur das in einer Schleife die 6 ADC-Ports abgefragt werden. Die Peaks usw. werden im S-RAM abgelegt. Hat jemand ein Tip oder ein Denkanstoss für mich?
-
Thread
Pausen-Problem
Port setzen alleine braucht ja z.b. schon 3 Takte ... - Port einlesen - Bit(s) ändern - Port schreiben
@Mat > Port setzen alleine braucht ja z.b. schon 3 Takte ... > - Port einlesen > - Bit(s) ändern > - Port schreiben zum Glück gibt es ein ASM-Befehl der das Setzen eines Bits direkt übernimmt. Dafür muss
-
Thread
UART: Daten zum AVR senden
Hallo an alle Ich möchte nun Daten vom PC zum AVR (Mega8) senden, um sie dort zu verarbeiten. Ich will eine Zahl einlesen und damit rechenen. Als UArt Lib wwill ich die Procyon Lib verwenden. Das senden verstehe ich und funktioniert auch Ich
start avarice --jtag $(JTAG_DEV) --erase --program --file \ $(TARGET).elf $(DEBUG_HOST):$(DEBUG_PORT) @$(WINSHELL) /c pause else @$(WINSHELL) /c start simulavr --gdbserver --device $(MCU) --clock-freq \ $(DEBUG_MFREQ) --port $(DEBUG_PORT) endif @$(WINSHELL) /c start avr-$(DEBUG_UI) --
-
Thread
CP/M auf ATmega88
/avrcpm/trunk/avr/dsk_mgr.asm M /avrcpm/trunk/avr/init.asm M /avrcpm/trunk/avr/macros.inc M /avrcpm/trunk/avr/svnrev.inc M /avrcpm/trunk/avr/utils.asm M /avrcpm/trunk/avr/virt_ports.asm M /avrcpm
M /avrcpm/trunk/cpm/CFGACPM.LIB * cpm/BIOS.MAC - conin/const: Use function 'uartstat' (port 3) instead of 'constat' (port 0). constat will be removed soon. * avr/virt_ports.asm - Mark 'constat' as deprecated. * avr/* - More lds/sts --> ldd/std changes. ----------------------------
-
Thread
Arrays, Pointer und Schleifen (avr-gcc)
while-Schleife zurückgesprungen wird und dass das Programm somit hängen bleibt. [c] #include <avr/io.h> #include <avr/interrupt.h> #include <inttypes.h> #include <stdlib.h> #include <avr/pgmspace.h> #define CLK 3686400 unsigned char i; unsigned char Array[10] = { 0,1,2,3,4,5,6,7,8,9 }
.. aber so scheint avr-gcc es zu handeln^^ grüsse,daniel
-
Thread
Anfängerfrage: Port und Pin bei AVR's
PortX ist zur Ausgabe also das setzen auf 1/0. PinX ist zum einlesen.
AVR. ...
-
Thread
Schieberegister über zwei Ports
Schieberegistern :) ********************************************************************* #include <avr/io.h> #define F_CPU 8000000UL //CPU Takt = 8MHz #define SR_DDR DDRB //DDRB als SR_DDR definieren #define SR_PORT PORTB //PORTB als SR_PORT definieren #define SR_0 PB0 //PB0 als SR_0 definieren
//8 Bit ins SR schieben { if((memory[i]>>j) & 1) //Bits jeweils mit 1 verunden SR_PORT |= (1<<SR_1); //wenn Bit=1 SR_1 auf HIGH else SR_PORT &= ~(1<<SR_1); // wenn Bit=0 SR_1 auf LOW SR_PORT |= (1<<SR_0); //HIGH Flanke => schieben SR_PORT &= ~(1<<SR_0
-
Thread
DS1620 - Auslesen der Temperatur?
i=0; i<9; i++) { PORT_DS1620 &= ~(1<<CLK_DS1620); result = (result>>1); if (PIN_DS1620 & (1<<DQ_DS1620)) result |= (1<<8); PORT_DS1620 |= (1<<CLK_DS1620); } DDR_DS1620 |= (1<<DQ_DS1620); //
char i=0; i<9; i++) > { > PORT_DS1620 &= ~(1<<CLK_DS1620); > result = (result>>1); > if (PIN_DS1620 & (1<<DQ_DS1620)) > result |= (1<<8); > PORT_DS1620 |= (1<<CLK_DS1620); > } > DDR_DS1620 |= (1<<DQ_DS1620
-
Thread
PORT/Register Beschreibung in AVR
Bin kein AVR Spezialist, aber die Kommentare scheinen mir nicht immer zum Code zu passen. (PC5 und Port C0) Eingänge schreibt man auch nicht, die ließt man nur. Das Wort "Impuls" passt hier auch nicht. Ein
Null zu schieben. Damit wird dein Programm zu sowas: [c] #define F_CPU 8000000UL #include<avr/io.h> #include<util/delay.h> int main() { DDRC &= ~_BV(PC5); // config - PortC PIN 5 als INPUT PORTC |= _BV(PC5); // pullup aktivieren DDRB |= _BV(PB0); // configuring PortB0 als
-
Thread
Discoboden-Projekt
Farben übertragen werden. Das sind dann 8 Byte pro Farbe, also immerhin 24 Bytes, die irgendwo im AVR platz finden müssen (im SRAM? Ich muss mich da noch einlesen...) Also nochmal Port 4: 1 Pin für den Oktalzähler 1 Pin als Statuseingang - Will der PC, dass ich das Farbmuster wechsle und eine
einige 12V-Birnen treiben. Jetzt also meine Frage: Wäre das grundsätzlich möglich? Der einzige AVR-Typ, der mit 4 Ports ausgestattet ist, ist der 90S8535, dessen Programmierung mit Assembler wohl am unkompliziertesten wäre, da die benötigte Zeit zum Einlesen der Daten überschaubar bleibt. Falls
-
Thread
MMC/SD ansteuern mit AVR
Hallo @oliver der Vorteil an meinen Code liegt daran das dieser auch MMC - Karten an irgend einen Port des AVR´s unterstützt. Gehe her streiche die Portunterstützung heraus verbessere den Code und du hast den Code nun von Stefan Seegel, da mir der stark verbesserte Code sehr gut gefallen hat habe ich
Hallo, habe jetzt auch mal das beispiel von radig probiert, leider findet mein avr die SD nicht, hab schon mehrere versucht und auch mal den port gewechselt, aber es geht einfach nicht. Gibts irgwas was man beachten sollte? Oder an was liegt das? Als µC hab ich einen atmega32 benutzt
-
Thread
matrix keypad einlesen
Hallo. Habe mir mal den Code von Peter( Datei im Anhang) angeschaut. Und er gefällt mir sehr gut, da er sehr kompakt ist. Bin jetzt gerade dabei diesen zu verstehen und für mich umzusetzen. Da ich eigentlich die Abfragen zu der Flanke und mehrere gedrückter Tasten nicht brauche, kann ich sie eigentlich weglassen, aber man kann ja drauf aufbauen. Ab und zu vielleicht doch sehr hilfreich! Da ich mich ein wenig schwer tue den Code richtig zu verstehen( hinsichtlich der ganzen Verknüpfungen) habe ich Angst mir meinen atmega128 zu zerschiessen wenn ich im Code rumpfusche. Ich habe ein 4*3 Matrix-Tastatur
-
Thread
Arduino Assembler Daten seriell einlesen, schreiben
*************************************************** ;***** Es wird angenommen, dass die Daten am Port A ankommen, ******* ;***** am Pin PA0; der Zustand des Ports A wird nach DatenBit ******* ;***** eingelesen; nur niedrigwerteste Bit des Port A ist hier ****** ;***** von Bedeutung => PA0 kann nur
loop2 ; [/avrasm] Code ist für XMEGA, muss also füe MEGA angepasst werden, d. h. Einlesen des Port A. BTW: Was für brillante Antworten hast du bis jetzt bekommen...
-
Thread
Serieller Port, Linux, C++
Konstruktor dieser klasse einen neuen (p)thread zu erstellen? Dieser könnte dann Daten nmit select() einlesen und einen Puffer befüllen, während das eigentliche Programm weiterläuft. Soviele serielle Verbindungen hat man ja normal nicht offen, sodass plötzlich Unmengen an Threads laufen...
Schnittstellen arbeiten... http://www.boost.org/doc/libs/1_54_0/doc/html/boost_asio/overview/serial_ports.html
-
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
Atmega8 ASM-Unterprogramm funktioniert nur bei Simulation
Guten Tag Dieses kleine Programm sollte eigentlich die LEDs an PortD 0 und 1 jeweils beim Betätigen eines Tasters 0 oder 1 an PortB an- und umschalten und beim Betätigen eines dritten Tasters an PortB 2 ausschalten. Die Simulation im AVR-Studio funktioniert wie ich
weit weg. Immer mitzuschreiben, welche Portbits du einliest ist müßig, daher schreib ich einfach PortX. Welcher Port das sein soll, keine Ahnung, aber du weißt es und brauchst also nur den Buchstaben dafür einzusetzen. Nun zu den Bits. Wenn du über In einen Port einliest, hast du immer die 8 Byte,
-
Thread
Abfrage von ca. 130 Tasten
ein Latch/Multiplexer/Schieberegister/was auch immer dazwischen, dann kommt man auch mit weniger Port-Pins aus.
https://www.mikrocontroller.net/articles/AVR-Tutorial:_Schieberegister#Porterweiterung_f.C3.BCr_Eing.C3.A4nge
-
Thread
8 Tasten einlesen (Möglichkeiten)
zu identifizieren. (Bei positiver Logik isses die Taste '7'). In der u.a. Schaltung verwende ich PortPin 3 zur Erkennung, ob überhaupt eine Taste gedrückt ist, an Port Pin 0-2 steht der BCD Code. Hier mal die Matrix für Taste '5': Controller Port 3 2 1 0 | | --
-- | | | --- GND Ich verwende also positive Logik und habe die Pullups des Portes aktiviert. Wenn PortPin 3 low ist, ist eine Taste gedrückt und an Port 2-0 steht 0b101 = 5 Andere Tasten gehen entsprechend parallel mit ihren Dioden an die PortPins. Taste 7 also hätte nur die Diode
-
Thread
UP - DOWN Taster Entprellung mit Timer
wenn hier jemand seinen C Code posten könnte. mfg t3sla PS.: Beide Taster hängen an einem Port (Port D)!
Peter Dannegger schrieb: " Wenn man nicht darüber nachdenkt, dann ist Tasten einlesen schwierig. .... Wenn man aber einmal richtig drüber nachgedacht hat, dann ist Tasten einlesen popel einfach .... " Also wenn man es kann ist es einfach, dann nehme ich das mal als Kompliment.
-
Thread
Busy Flag von LCD abfragen
sein, um die Daten zu lesen, wenn E L ist, geht das Display wieder in TriState... Also sbi LCD_PORT,PIN_E ; E auf H nop ; warten E geht erst im nächsten AVR-Clock auf H und das Display braucht auch einen Moment... nop in temp_1,LCD_PORT ; Bit 7...4 einlesen cbi LCD_PORT,PIN_E ; E hier wieder auf L sbi LCD_PORT,PIN_E ; E auf H nop ; warten E geht erst im nächsten AVR-Clock auf H und das Display braucht auch einen Moment... nop in temp_2,LCD_PORT ; Bit 3...0 einlesen cbi LCD_PORT,PIN_E ; E hier wieder
-
Thread
AVR Control Experimentierplatine
ich nicht ganz, wenn das File nur 1230 Byte hat. Gibt es auch ein Programm, mit dem ich den LPT1 Port unter W2000 ansprechen kann? (Porttalk hat nicht funktioniert.) z.Z. spiele ich die .BIN Dateien unter Dos mit isp_avr von der mikrocontroller.com Seite ein.
Programm in den Controller zu laden kannst du (bei deinem Controller/Board) prinziepiell nur den LPT Port verwenden. Wenn du den RS232 Port benutzen möchtest, der ermöglicht dir den Datentransport zwischen PC und AVR oder zwischen AVR und einem zweiten AVR. Dazu solltest du aber don Controller schon ein
-
Thread
64 Eingänge für Arduino
Das werde ich noch überlegen, vielleicht komme ich aus mit 128 Ports. Danke für euere Hilfe und Ideen.
Mit Shift Register w.z.B. den HC165 könnte man die 64 Eingänge bei 8MHz SPI Clock Frequenz im AVR in unter 10us einlesen. Zuerst den 165ern einen kurzen Übernahme Impuls senden und dann 8 SPI HW Reads - Fertig. Ein einziges I2C Byte bei 400kHz braucht mindestens 25us. Da ist der 8x HC165 Lesevorgang
-
Thread
Spannung an Ausgangsports zu niedrig
habe das Problem das ich mit dem ADC (Spannung > messsen) LEDs ansteuern will. Benutzt du den Port (Pin) zum Einlesen einer Spannung oder möchtest du ein Signalpegel ausgeben, oder misst du mit einem Pin die Spannung und möchtest eine entsprechende Ausgabe über einen anderen Pin machen?? emit5
Simon D. schrieb im Beitrag #1873788: > Benutzt du den Port (Pin) zum Einlesen einer Spannung oder möchtest du > > ein Signalpegel ausgeben, oder misst du mit einem Pin die Spannung und > > möchtest eine entsprechende Ausgabe über einen anderen Pin machen
-
Thread
AVR GCC Poti wait
/* Einfache Funktion zum Entprellen eines Tasters */ inline uint8_t debounce(volatile uint8_t *port, uint8_t pin) { if ( ! (*port & (1 << pin)) ) { /* Pin wurde auf Masse gezogen, 100ms warten */ _delay_ms(65; // max. 262.1 ms / F_CPU in MHz _delay_ms(65;
[C] inline uint8_t debounce(volatile uint8_t *port, uint8_t pin) [/C] nimm da mal das inline weg.
-
Thread
Avr-Frequenzzähler+Überlegung
wie der interne Timer1 (als Counter)65536 Schritte zählen kann. Wenn ich dessen Zählerstand über 2 Ports einlese(muß ich ja, denn das Ding ist ja dann 16 Bit breit)und dann drin die 2 Bytes "zusammenschiebe", müßte ich doch auf´s Hertz genau messen können? In der Not würde ich 4 Stück D193 oder etwas
Counter-Daten holen (Byte2 und Byte1 des Ergebnisses) - CNT_OE/CNT_RE auf L, jetzt liegen die Latch-Daten am Port an (Der Zähler wird hier schon wieder auf 0 gesetzt für die nächste Zählung) Einlesen '590 Wert als Byte 0 - CNT_OE/CNT_RE wieder auf H, Zählerport ist wieder frei Gruß aus Berlin Michael
-
Thread
Kann Eingang nicht einlesen
Hallo zusammen, ich bin etwas verwirrt: Ich habe einen Atmega8, mit dem ich gerade meine ersten Schritte mache. Ich möchte dabei eine einfache Eingangsabfrage machen, die, obwohl ich mir keines Fehlers bewusst bin, nicht funktioniert. Zunächst setzte ich dabei Port B als Eingang, nach Folgendem Muster: [c]DDRB = 0x0;[/c] und frag dann den Wert in einer Endlosschleife immer folgendermaßen ab: [c]if(PORTB > 0){...}[/c] Ist die Abfrage wahr, dann lass ich im Anweisungsteil eine LED an Port D leuchten, etwas, dass in anderen Programmen immer gut funktioniert hat. Doch wenn ich dann
-
Thread
Inline-Assambler PINC in register speichern
unsigned char ausblenden; void datenLesen(){ asm volatile ( "in %[register0], %[PortC]" "\n\t" "in %[register1], %[PortC]" "\n\t" "in %[register2], %[PortC]" "\n\t" ::[PortC] "M" (_SFR_IO_ADDR (PINC)), [register0] "r" (DatenBits[0]), [register1] "r" (DatenBits
i++; } [/c] Aber eigentlich Muss ich insgesamt 8 Bit oder 16 Bit direkt hinter einander einlesen.
-
Thread
A/D Wandler im ns-Bereich
gleich verzögert wäre das ja egal. Nur die digitalen können innerhalb einer handvoll Clocks ihre Ports einlesen und im RAM speichern. Die ADs müssten also einfach nur schnell den Wert liefern können.
möglichst schneller Wandler (Flash-Wandler???) mit Parallel-Ausgabe gehen sollte. Zwischen ADC und AVR ein schelles Latch. Der Wandler läuft durch und der Sampleimpuls triggert das Latch über ein externes RS-FF und löst am AVR einen IRQ zum Einlesen aus. Wenn der AVR fertig ist setzt er das FF zurück
-
Thread
unterschied zwischen direction und ausgabe
mit #0ffh zu initialiseren werden nur dort informationen an den Pins geändert wo zuvor der Port-Latch ne 1 eingeschrieben wurde alle anderen werden eine 0 einlesen, weil ja T2 leitet und den Port-Pin auf masse zieht. Also wenn als Eingang ein Port verwendet wird immer mit 0ffh initialisieren
durcheinander. Du hast selbstverständlich recht das nach dem Einschalten oder einem reset die Ports high sind. Aber er wollte ja an dem selben Port ja was einlesen und wieder ausgeben. Da sollte er schon das oben erwähnte beherzigen. Nicht böse sein. Gruß norad
-
Thread
Ports mit ADC ansteuern
Guten morgen! Ich suche nach einer Möglichkeit, mit einem Drehpotentiometer 4 Ports eines uControllers (Atmel ATmega8) zu schalten. Das Potentiometer schaltet also je nach Drehstellung einen der 4 Ports auf HIGH. Ist dies überhaupt möglich? Wenn ja, hättet ihr vielleicht ein kleines
noch nicht wirklich durch > ;) Schau dir mal das AVR Tutorial an und mach es durch. Es dauert nicht lange ist aber gut - wenn man C Programmieren kann. http://www.mikrocontroller.net/articles/AVR-GCC-Tutorial Daniel F. schrieb im Beitrag #2148736:
-
Thread
USB-Stick am Mikrocontroller VNC1L
oder Verpolt hatte ich nix. Jetzt hängt das Modul am PortB. mfg LPT
echt einsteiger auf dem Gebiet. Ich wollte dien Programm nutzen um Daten zu loggen. ich benutze einen AVR ATmega32 und AVR Studio 5. Nun ist mir aufgefallen das du vnc2l_avr.c in VNC!L_AVR.c includierst ohne eine Header Datei zu packen...wenn ich das ganze kompilieren will, bekomme ich die fehlermeldung
-
Thread
was wenn Schieberegister kleiner ist?
es mal auf den Punkt zu bringen: Dein Sensor hat eine > SSI-Schnittstelle, die du mit einem µC einlesen willst? Er will einen Inkrementalwertgeber per AVR in einen Absolutwertgeber mit SSI-Schnittstelle verwandeln.
es mal auf den Punkt zu bringen: Dein Sensor hat eine >> SSI-Schnittstelle, die du mit einem µC einlesen willst? > > Er will einen Inkrementalwertgeber per AVR in einen Absolutwertgeber mit > SSI-Schnittstelle verwandeln. genau richtig, vollgetroffen.
-
Thread
Signal über Ports leiten
C (AVR-GCC) Gruss Toni
Das ist auch AVR-Spezifisch. Wenn du irgenwas ausgeben willst, so musst du PORT benutzen. Wenn du was einlesen willst, dann musst du PIN benutzen. Das ist ein häufiger Anfängerfehler, dass zum lesen auf PORT
-
Thread
AVR-Bootloader mit Verschlüsselung
, oder willst du ne erkennung einbauen an welchem ComPort der AVR hängt ? Ansonsten weiterso und nochmal Danke für deine wirklich ausführliche Hilfe! Gruß Stefan
hast dann benutze deren Pin & Port für DE_PIN & DE_PORT. Du solltest dann ein Blinken sehen wenn der AVR sendet, geringe Baudrate dann aber einstellen. Ich denke du hast irgendwas nicht korrekt konfiguriert oder mit deiner HW stimmt