-
Thread
DS1820 timing problem
_delay_us(65); //warten auf DS1820 wert = DS_PIN & (1<<DS_BIT);//zustand einlesen: 0 wenn präsent, 1 wenn nicht präsent _delay_us(420); //warten bis fertig... }[/c] die Register sind so definiert: [c] #define DS_DDR DDRB #define DS_PORT PORTB #
DS_DDR |=(1<<DS_BIT); DS_PORT |= (1<<DS_BIT); _delay_ms(5); DS_PORT &= ~(1<<DS_BIT); _delay_us(485); DS_PORT |= (1<<DS_BIT); } [/c] und dann im Hauptprogramm mit ds1820_init() aufrufe stimmts wieder
-
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
Auf Taster an PortB reagieren
du must deinen port als eingang konfigurieren ($FF ins DDRB schreiben) und auslesen (wert von PINB holen). wie das geht, steht oben links im avr-tutorial. das ist zwar für assembler, zeigt aber die notwendigen schritte
ahnung, wie bascom geht, aber das hier: If Portb > 0 then ist wohl dein problem. du mußt den port einlesen (siehe mein erstes post), also eher: If pinb > 0 then oder so ähnlich.
-
Thread
Einfacher und billiger Webserver mit AtMega32
Hallo, ich möchte mit dem AVR-Webserver die LED nicht nur übers webinterface ein und ausschalten, sondern auch über 2 Taster (Ein, Aus). Ich habe mir dazu überlegt, dass ich in der Hauptschleife ständig die beiden Ports der Taster
@Steffen Auf http://www.mikrocontroller.net/articles/AVR-GCC-Tutorial Siehe unter: Zugriff_auf_Ports Wichtiger Hinweis: Suche hier in den Foren auch nach "entprellen"
-
Thread
Bascom Variablen
findest du im Roboternetz bzw. In der Hilfe von Bascom. Fang doch aber erst einmal mit dem eeprom vom avr an zu spielen.
' 7 Zeichen einlesen Eeprom_adr = &H0000 ' Ab Adresse 0 Gosub Read_eeprom ' Nur "ist ein" einlesen Print Eeprom_data Gosub Write_eeprom
-
Thread
Wie schreib ich ein Comparator in C Code?
if (Istwert > Sollwert) { Port = 1; }
Zum Thema Ausgabeport setzen http://www.mikrocontroller.net/articles/AVR-GCC-Tutorial#Zugriff_auf_Ports Auch hier wieder: Wenn noch Fragen offen bleiben, dann stelle sie. Aber lies dir das erst mal durch. Und: Du solltest mit einiger Sicherheit hiermit anfangen.
-
Thread
Hilfe bei AVR-Assembler Erstversuch
Kopf, deshalb keine Garantie, doch vom Prinzip dürfte es so funktionieren. Du willst: 1. den Port einlesen -> in R28, Portb ;ist ok 2. wenn Bit 2 gesetzt ist was tun -> SBIS R28,2 ;Skip if Bit in I/O Register is Set (überspinge nächsten Befehl wenn Bit 2 gesetzt ) -> rjmp Bit
sichern clr inttemp ;timer anhalten out tccr0,inttemp in inttemp,pind ;port einlesen sbrs flag,messen ;wenn messen aktiv springen rjmp warten_aktiv ;sonst gehe zu com inttemp ;port umdrehen bst inttemp,2 ;bit d2 holen
-
Thread
Einfachen Wert von I/O-Port einlesen klappt nicht
an dieser Stelle: [avrasm] in r16, PIND ;PIND einlesen (hier klemmt der Taster dran) cpi r16, 0b10000000 ;Diesen Wert mit dem vergleichern, der ohne Drücken vorliegt[/avrasm] gehst du davon aus, das alle anderen Pins des Ports low sind. Hast du dafür
Beschaltung gesorgt? Deine Pullups sind high, also wenn du die anderen Pins nicht beschaltet hast, ließt der AVR immer 0bX1111111 wo X für deinen Button steht. Entweder du machst noch ein AND rein, zB: [avrasm] in r16, PIND ;PIND einlesen (hier klemmt der Taster dran) andi r16, 0b10000000 ;andere Bits
-
Thread
Projet um die Kapazität von Akkus zu messen
Hallo frewer 1. Hast du im AVR Studio eingestellt, dass das vorhandene makefile verwendet werden soll oder lässt du dir eins von AVR Studio erstellen? Ansonsten wenn du WinAVR installiert hast sollte auch ProgrammesNotepad mitinstalliert
void TasteEinlesen(void) { // Taster einlesen if (!(TASTER_PIN & (1 << TASTE1))) { // Taste gedrückt TasteOK.Counter++; if (TasteOK.Counter > 50) // = Entprellen? { TasteOK.Kurz
-
Thread
Messchieber auslesen
PC. Und, viel wichtiger, ich moechte das selber bauen! Ich habe so gut wie keine Ahnung von AVR programierung und wuerde mich echt freuen, wenn jemand da etwas an Bauplan oder AVR Progi haette. Ich habe auch hier im Forum gesucht und da ist leider nur ein Eintrag der mir nicht recht weiter
der Ablauf eines solchen Programms sein soll? Ich möchte am schluss eigentlich 3 Messschieber einlesen und ausgeben. Dazu noch die Werte Umrechnen. Leider binn ich mit einlesen eines Messschiebers schon ein bisschen überfordert. freundliche Grüsse Remo
-
Thread
Was kann den avr killen?
"Was kann den avr killen?" - Hammer - Überspannung - Kurzschluss oder zu viel Strom pro /Pin/Port/Baustein - Zu viele Schreibvorgänge auf das Flash - Falsch gesetzte Fuses (kann aber evtl über HV-Programmierung
Bei PP sollte man die Fuses vorher einlesen bevor man die wieder schreibt.
-
Thread
ATXMega128 - Erste Erfahrungen
;USART_D1 DataRegisterEmpty jmp RESET ;USART_D1 TXComplete jmp RESET ;PortQ Int0 jmp RESET ;PortQ Int1 jmp RESET ;PortH Int0 jmp RESET ;PortH Int1 jmp RESET ;PortJ Int0 jmp RESET ;PortJ Int1 jmp RESET ;PortK Int0 jmp RESET ;PortK Int1 jmp RESET ;Reserved jmp RESET ;Reserved jmp RESET ;PortF Int0 jmp RESET ;PortF Int1 jmp RESET ;TWI_F
-
Thread
Portpins geschickt einlesen
Prozessor: AVR Atmega8 Hallo, ich möchte eine Kombination aus 3 Portpins geschickt einlesen und je nachdem, welche Kombination ausgewählt ist, etwas Bestimmtes tun. Und zwar so wollte ich beispielsweise Port
Frage, wie man das am besten im Programm einliest, um etwas zu machen. Angenommen man würde nur Port C verwenden und sonst dort nichts anschließen, so könnte man ja den ganzen Port in eine Variable einlesen und bekommt eine Zahl als Ergebnis. Diese könnte man dann auswerten. Am einfachsten wäre es
-
Thread
Ds18B20 Zeigt zu höhe Werte
I/O Funktionen sehen so aus. [c] void ds_out(){ DS_DDR |= (1 << DS_PIN); DS_PORT |= (1 << DS_PIN); } void ds_in(){ DS_DDR &= ~(1 << DS_PIN); DS_PORT |= (1 << DS_PIN); } [/c]
und dort funktioniert es (angeblich). Dieselbe Taktfrequenz ? Auf der einen Seite gibt es DS_PORT, auf der anderen PINC, ist DS_PORT auch PORTC, oder geändert ? (scheiss Definitionen).
-
Thread
kanns Assembler schneller als Bascom!?
Hi in r16,PinD ; Port einlesen bst r16,2 ; Bit nach T-Flag in r16,PinC ; Port einlesen bld r16,4 ; Bit setzen out PortC,r16 ; Port ausgeben 5 Takte MfG Spess
also würde es in meinem fall so aussehen [avrasm] in r16,PinD ; Port einlesen in r17,PinC ; Port einlesen bst r16,2 ; Bit nach T-Flag bld r17,1 ; Bit setzen bst r16,6 ; Bit nach T-Flag bld r17,0 ; Bit setzen Out Portc , R17
-
Thread
Raspi Pi Pico schnell genug um 4Mhz Z80 zu sniffen?
. 2x50mA je Richtung? 2x 50mA ist bei den SoC schon mal falsch, maximal 50mA in Summe über die Ports nach + oder -. Den SoC fehlt die typische Schutzschaltung der AVR Arduino mit Dioden und Widerstand zur Strombegrenzung. Seit dem ersten Raspi wurde als sicher empfunden die 50mA durch alle Ports
bei den alten 8-bit AVR x-mal gezeigt. Da funktionierte sogar Rück-Speisung über die Ports solange die Schutzdioden nicht übermäßig gefordert werden. Timer für Canon Cam an der FB Buchse, nicht von mir aber trotzdem genial
-
Thread
AVRs über USB programmieren!
realtime" terminal gibt's umsonst dazu, >d.h. man kann locker in 30min (wenn überhaupt) ein lauffähiges AVR >system zambarschteln. Aha >Wer braucht mehr für daheim?? jemand der keinen Seriellen Port mehr hat wie der Fragesteller. >BTW: kennt jemand ein besseres (feature mäßig) Forum? Da kommt
, und lies diese mit avrdude aus dann können wir das mal korrigieren. >Aber der "Communication Port" ist bei mir noch nicht installiert. Ist >das richtig so? Ja, den gibts nur bei der STK500 und AVR910 Firmware der Bootloader und alle anderen Firmwares laufen mit einem HID USB Treiber.
-
Thread
Daten von parallelem ADC einlesen
Alternative zu manuellem Pinwackeln und Port einlesen. Wie nutzt man Memory mapped IO auf einem AT91SAM7? Welche Einlesegeschwindigkeit (ohne Verarbeitung der Daten) kann man damit erwarten?
wie wärs mit einem ram oder fifo als zwischenbuffer und dann ganz gemütlich ins avr einlesen
-
Thread
AVR (AT90USB162) - Sleep Mode und PCINT
long #endif // Include guards //#include <stdint.h> // Integer variable #include <avr/io.h> // I/O ports #include <util/delay.h> // Delay function #include <avr/sleep.h> // Sleep mode #include <avr/interrupt.h> // Interrupt implemention //#include <avr/wdt.h> // Watchdog
interrupt wake up * 2024 * */ #include <stdint.h> // Integer variable #include <avr/io.h> // I/O ports #include <util/delay.h> // Delay function #include <avr/sleep.h> // Sleep mode #include <avr/interrupt.h> // Interrupt implemention #include <avr/wdt.h> // Watchdog
-
Thread
Universelle Tastenabfrage
define LED LATAbits.LATA2 // LED #define BUTTON PORTAbits.RA4 // BUTTON //neu //#include <avr/stdint.h> //#include <avr/avr/io.h> //#include <avr/avr/interrupt.h> //#define KEY_DDR TRISA // DDRB //#define KEY_PORT LATA // PORTB #define KEY_PIN PORTA // PINB
die Basiscode von Peda (Peter Dannegger), Codeteile und die Funktionsnamen in Assembler unter LunaAVR implementiert. Dann auf beliebige Ports noch erweitert, so dass man über die Hochsprache LunaAVR auch einfach zwei oder drei 8 Bit Ports entprellen kann.
-
Thread
#define nutzen um mehr als 8 Ein- oder Ausgänge anzusprechen
Hallo AVR-Programmierfans, ich habe folgende Fragestellung. Ich nutze einen Arduino Mega 2560. Um das Einlesen oder Ansprechen von mehr als 8 Ports zu realisieren, ist meine Überlegung über #define ein
Gabi D. schrieb im Beitrag #6074104: > Um das Einlesen oder Ansprechen von mehr als 8 Ports zu realisieren Was ist denn Dein konkretes Problem? Du kannst jederzeit jeden beliebigen Portpin direkt ansprechen. Willst Du mehrere 8Bit-Ports gleichzeitig
-
Thread
ATTiny2313 reagiert nicht auf Eingangssignal
Habe jedoch noch eine Frage dazu. Das PortX Register ist doch Input/Output. Warum kann ich trotzdem nicht so einlesen? Oder hat das was damit zu tun dass nicht der ganze Port als Eingang benutzt wird?
Hi >Habe jedoch noch eine Frage dazu. Das PortX Register ist doch >Input/Output. Warum kann ich trotzdem nicht so einlesen? Oder hat das >was damit zu tun dass nicht der ganze Port als Eingang benutzt wird? Das Port-Register hat zwei Funktionen
-
Thread
AD Konverter beim Mega 8
> An welchem Port leg ich die Spannung denn genau an Steht im Tutorial: http://www.mikrocontroller.net/articles/AVR-Tutorial:_ADC#Beschaltung_des_ADC-Kanaleingangs > wie bekomm ich den Wert nun in ein Register
ADCSRA, ADSC ; wenn der ADC fertig ist, wird dieses Bit gelöscht rjmp wait_adc ; ADC einlesen: in adlow, ADCL ; immer zuerst LOW Byte lesen in adhigh, ADCH ; danach das mittlerweile gesperrte High Byte out PortB, adhigh Natürlich habe ich vorher PortB
-
Thread
BASIC-Computer mit Mega32
ein bisschen in der Software vom BASIC-PC rumprogrammieren. Aber ich komme nicht weiter. Ich habe avr_libmake in den Ordner vom PC kopiert. avra ist installiert. aber wenn ich in der Konsole eingeben" "./avr_libmake main.as" sagt er [c] Pass 1... Pass 2... main.asm(75) : error : [Macro: macros.inc
schade das dieses programm nicht in dem normalen avr-studio-asm geschrieben wurde.
-
Thread
Schaltung um eine Spannung zu messen ohne AD wandler
Brown-out-Detektor, können aber auch mit 3,3V versorgt werden. PIC16LF873 ist so einer. Der Komparator in den AVR ist festen Pins zugeordnet. Er vergleicht die Spannung zwischen zwei Eingängen oder einen Eingang mit der eingebauten Spannungsreferenz. Der ATmega328 hat ihn z.B. zwischen AIN1=PortD7 und wahlweise AIN0=PortD6 oder der Referenz.
-
Thread
Fehlersuche Displaysteuerung
"sonst ist an Port C keine normale Port-Funktion." Davon habe ich bis jetzt noch nichts bemerkt. Ich werde mir das durchlesen, aber könnte das den Fehler verursachen?
"Ach ja: Bei verwendung von Port C solltest Du das JTAG mit den Fuses abschalten sonst ist an Port C keine normale Port-Funktion. Wie das geht steht im Mega16-PDF im Abschnitt "Memory Programming"." Ja aber mit dem Multimeter
-
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
Vollständiges SPI Beispiel AVR-GCC?
++index == 8) { index = 0; uart_puts("___________\r\n"); } SPI_PORT &= (1<<SPI_SS); _delay_ms(2000); } } [/c] [c] /*SLAVE*/ #include <avr/io.h> #include <util/delay.h> #include "spi/spi.h" #include <avr/interrupt.h> int main(void) { DDRA
SPI_PORT &= (1<<SPI_SS); --> SPI_PORT &= ~(1<<SPI_SS); Gruß Rene
-
Thread
AVR, virtual port, power save
|= PORT_ISC_INPUT_DISABLE_gc //digital input pull-up on/off, p = attiny port pin number #define PULLUP_ON(p) _PULLUP_ON(p) #define _PULLUP_ON(p) PORTA_PIN##p##CTRL |= PORT_PULLUPEN_bm #define PULLUP_OFF
die Autoren der io.h aber anderer Ansicht. Und sie haben Recht, wen wunderts. Will man z.B. einen Port wiederholt einlesen, dann darf der Compiler das nicht wegoptimieren und eine alte Kopie aus einen CPU-Register nehmen. Jeder HW-Zugriff hat genau zu dem Zeitpunkt und in der Reihenfolge zu geschehen
-
Thread
port lesen wenn es als ausgang konfiguriert ist
Hi Du kannst den Port ganz normal als Register lesen. MfG Spess
fast pervers :-) Falsch. Die Antwort hast du dir schon selbst gegeben: >Durch beschreiben des PORT Registers schaltest du ja ständig >die Pull Up Widerstände ein und aus. Genau deshalb MUSS man den Port lesen und mit der Ausgabe verknüpfen wenn man die internen PullUps verwendet. Ein Port-Register
-
Thread
Frequenzzähler PCINT2 TIMER1 Verzweifelung
100 Herz über den Port PD5/PCINT21 einlese. Das Programm arbeit größtenteils korrekt, doch es gibt Situation indem nur ein Viertel der Frequenz ausgegeben wird. Die ISR werden wie beim Oszi zu sehen aber immer abgearbeitet
Overflows ;-) [Die Overflow-Handling-Idee kommt übrigens aus: http://www.mikrocontroller.net/topic/avr-timer-mit-32-bit]
-
Thread
Verzögerung der Input-Latches beim AVR
mit RAM-Interface nehmen kann? > Kann ich mir zu 100% sicher sein, dass ich in r17 die Pegel einlese, > die VOR dem out-Befehl am Port angelegen haben? Natürlich nicht, jeder Interrupt kann Dir dazwischen hauen. Peter
>Kann ich mir zu 100% sicher sein, dass ich in r17 die Pegel einlese, >die VOR dem out-Befehl am Port angelegen haben? Dabei interessieren Uuups, zu schnell. JA. Hier klappt der Trick. MfG Falk
-
Thread
Tastendrücke einlesen
Hallo, ich möchte mit einer Taste eine LED (beim ersten mal drücken) einschalten und dann (beim zweiten mal drücken) wieder ausschalten. Mit dem unteren Code funktioniert es, dass ich die LED mit dem Tastendruck einschalte aber ich kann die LED (mit dem selben) Taster nicht wieder ausschalten. Weiß jemand wie ich das machen kann? Vielen Dank. lg Birgit Egger [CODE] switch(P2 & 0x400) { case 0x400: P2_9 = (P2_9 | 0x00); break; case 0x0: P2_9 = (P2_9 | 0x01); break; default: i = 0; } // P2_9 ... LED output // P2_10 ... Taster input
-
Thread
Mikrocontroller und Komponenten -> evtl. für Serienproduktion
ein Projekt für die Uni. Es soll ein System entwickelt werden, welches - 1-2 digitale Signale einlesen soll (DI) - Ein externes Gerät mittels eines analogen Signals (0-10V, 20mA) schalten soll (AO) - Eine analogen Wert 0-5V einlesen kann (AI) - ein LCD Display ansteuern soll (3-4 Zeilen) - Messdaten
dem PC in den uC, schliesslich haben die wenigsten PC noch einen brauchbaren parallel oder seriell Port.
-
Thread
Charge Transfer Prinzip (Qtouch) auf STM32 möglich?
PC13 zuerst auf High schalten und dann als Ausgang konfigurieren? Ich dachte man kann einen IO-Port nur dann auf ein Potential ziehen, wenn der IO-Port als Ausgang konfiguriert wurde?
Wenn Dein Port aber "0" ist, Du ihn dann als Ausgang definierst und anschließend erst "1" schaltest, ist schon etwas Zeit vergangen, in der der Port "0" ausgegeben und somit den C schon wieder (etwas) entladen hat
-
Thread
Probleme mit resistivem Touchscreen
XPLUS PC3 // X+ Port #define XMINUS PC1 // X- Port #define YPLUS PC0 // Y+ Port #define YMINUS PC2 // Y- Port /* ADC initialisieren */ void ADC_Init(void) { uint16_t result; // interne Referenzspannung
Hi Such mal bei ATMEL nach: AVR341: Four and five-wire Touch screen Controller using tinyAVR and megaAVR devices Da gibte es auch Software. MfG Spess
-
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
Menüsteuerung mit zwei Tasten (Up/Down) in Assembler
davon aus, du hast die Taster an VCC Sind sie nach GND geschaltet, drehst du R15 gleich nach dem Einlesen vom Port mit COM-Befehl um. Die Entprellung ist hier noch nicht beerücksichtigt. Gruß oldmax
Eingänge und Signalanpassung ---_-- ;***************************************************** ;* Port D 2-7 Eingänge (Taster) * ;* Port D 0 Bit 0 + 1 serielle Verbindung * ;***************************************************** Read_IO: ; Eingänge einlesen In R16, PInD ; Port B
-
Thread
Wie mach ich das am schlausten? Lochstreifen einlesen mit ATmega16
Handler Problem super geholfen wurde, stehe ich vor dem nächsten. Vermende einen Atmega16, 16Mhz, AVR Studio, Pollin Board und Ponyprog Zur Projekt-Beschreibung: Ich möchte ein Codeblech einlesen. Dieses hat drei horizontale Spuren und wird mit drei Lichtschranken die vertikal angeordnet sind eingelesen
Thomas S. schrieb im Beitrag #4765964: > Ich möchte ein Codeblech einlesen Was soll das sein, ein "Codeblech"? Oben schreibst du, dass du einen Lochstreifen einlesen willst. Wo kommt der her? Am besten machst du mal ein Foto davon.
-
Thread
Hausdrainage-Kontrolle mittels DuoLED und Levelsensor - Anfängerprojekt!
loop: in r16, PIND, 0 ; an Port D anliegenden Wert (sensor1 -> 0b00000001 = geschlossen) nach r16 einlesen in r17, PIND, 1 ; an Port D anliegenden Wert (sensor2 -> 0b00000001 = geschlossen) nach r17
in r16, PIND ; an Port D anliegende Werte (Taster) nach r16 einlesen out PORTB, r16 ; Inhalt von r16 an Port B ausgeben rjmp loop ; zu "loop:" -> Endlosschleife [/avrasm] Die jeweilige LED
-
Thread
Daten des ATTiny24 über SPI auslesen
Ich habe einen USB-Stick mitdem ich meinen µC programmiere, welchen ich in AVR-Studio als STK500-Board verwende. dieser USB-Stick schickt die SPI daten vom µC durch den USB-Stick über einen COM-Port und umgekehrt
Ich sehe den USB-Programmer ja als Com-port im Gerätemenager. Und über C++ kann ich daten vom COM-Port einlesen und ausgeben. Allerdings brauche ich dafür solche Daten wie die Baudrate. Wenn ich die Daten hätte, müsste ich meiner Meinung nach
-
Thread
geistertasten
nicht alle Portpins lustig durcheinanderwürfeln, damit machst Du Dir nur selber das Leben schwer. Der AVR ist ein 8-Bitter und Du hast 8 Zeilen, da sollte man schon möglichst alle Zeilen auf den gleichen Port legen. Das vereinfacht die Auswertung erheblich. Das Verwürfeln von Portpins ist dann schon höhere
Tasten. Es geht auch mit 10ms, denn kaum eine Taste prellt 10ms. Wenn du nun noch die richtigen Ports ansprichst, denn dein Schaltplan passt nicht zum Code.
-
Thread
Int auslösen beim einlesen von Schieberegister z.B. 4021
die Daten einlesen, vergleichen, den Interrupt melden, und aber auch noch die Schieberegister ersetzen.
input of the microcontroller. An interrupt is generated by any rising or falling edge of the port inputs in the input mode. Resetting and reactivating the interrupt circuit is achieved when data on the port is changed to the original setting or data is read from or written to the port which
-
Thread
Probleme nach Optimierung
optimierung auftritt: [c] #include <math.h> #include <stdlib.h> #include <string.h> #include <avr/wdt.h> #include <avr/sleep.h> #include <util/delay.h> #include <avr/interrupt.h> #define BAUD 9600UL // Baudrate für serielle Kommunikation #define F_CPU 4000000UL // Systemtakt in Hz #define
-1024) uint16_t accelz; // Messergebnisse des Kanals C2 (Z) (0-1024) // Eigenschaften der Ports C und D definieren DDRC = 0x18; // Nur die Ports 3-5 (C) auf Ausgänge schalten DDRD = 0xFD; // Port D Komplett als Ausgang für 7 Segment USART_Init(MYUBRR); // USART initialisieren cli
-
Thread
Leds mit gleichen Taster durchschalten
vervollständigen könnte oder neuer Code mit Timer oder anderem Lösung schreibt. Alex [c] #include <avr/io.h> int main(void) { DDRB|=(1<<PD3)|(1<<PD4)|(1<<PD5);// Pin 3,4,5 im Port B auf Ausgang DDRB&=~(1<<PD0); // Pin 0 im Port B auf Eingang (Taster) PORTB|=(1<<PD0); // Pull-Up aktivieren
Ansonsten es ist egal was für ein Board ich habe, Quellcode kann ich zu meinem Atmega8 auf dem myAVR mk2 Board anpassen.
-
Thread
15 x 1ms Impulsbreite messen
Wieso geht das nicht mit dem internen SRAM des AVR? Ein Timer auf 512 kHz einstellen. Innerhalb der ISR 2 Ports in ein int einlesen und mit dem Int aus der "letzten Runde" mit exor vergleichen. Wenn ungleich 0 > Flag setzen und in der while(1) schleife
Wieso geht das nicht mit dem internen SRAM des AVR? Ein Timer auf 512 kHz einstellen. Innerhalb der ISR Zeitzähler erhöhen 2 Ports in ein int einlesen und mit dem Int aus der "letzten Runde" mit exor vergleichen. Wenn ungleich dann Zeitstempel
-
Thread
xxxdef.inc dateien
Die .inc Dateien liegen dem AVR-Studio bei,im Unterverzeichnis AppNotes des jeweiligen Assemblers (AvrAssembler1 oderAvrAssembler2).Um den genauen Pfad musst du dich nicht kümmern,den findet der Assembler selber wenn alles richtig
\PortB" nachschauen kann, 0xFF sein. Dort steht aber 0X00 das heißt, das der Komplette Port B als seigang geschaltet ist, oder habe ich da etwas falsch verstanden?
-
Thread
Benötige Hilfe beim programmieren eines Microkontrollers!
welche Ausgang sind. Im Tutorial ist es gut erklärt. https://www.mikrocontroller.net/articles/AVR-GCC-Tutorial#Zugriff_auf_IO-Ports
Beispiel: Wie stelle ich einen Atmega Pin auf Ausgang? https://www.mikrocontroller.net/articles/AVR-GCC-Tutorial#Zugriff_auf_IO-Ports
-
Thread
AVR-Modell zur Laufzeit erkennen?
Google Suche sagt: http://www.nongnu.org/avr-libc/user-manual/group__avr__boot.html#gaf375d2543ba38dc56697b4f4bc37a717 boot_signature_byte_get http://stackoverflow.com/questions/12350914/how-to-read-atmega-32-signature-row Das funktioniert
das überhaupt funktioniert, sollte selbstredend klar sein. Das meint hier nicht nur „sind alle AVR“, sondern eher das, was GCC als -mmcu=avrXXX zusammenfasst.
-
Thread
F1-Drehzahlanzeige selber programmieren
Datenblätter lesen kannst > - mit welchem Betriebsystem du arbeitest > > Hast du schonmal ein AVR Tutorial durchgearbeitet? Mit welchen > Funktionseinheiten (Ports, ADC, Interrupts, Timer, etc) hast du dich > vertraut gemacht? Welche hast du nur mal kurz ausprobiert aber nicht > weiter vertieft
PORTC |= BarGraph [AnzahlLeds]; //PortC An?! PORTD |= BarGraph [AnzahlLeds]; //PortD An?! }[/c]