-
Thread
1 bit Wert PB2 direkt übernehmen (Assembler)
beeinflussen. http://www.atmel.com/images/Atmel-0856-AVR-Instruction-Set-Manual.pdf Wenn das in data zu beeinflussende Bit an der selben Position sitzt, wie in Port, dann ist diese Befehlsfolge [avrasm] ANDI data,(0xFF-0x04) SBIC PINB,2 ORI data,
nicht ziemlich ungenau? Wenn man dann, ohne weitere Takt-Synchronisierung, frei laufend 8 Datenbits einlesen will... ?
-
Thread
AT90S8515
Schaltung mit den AT90S8515 aufgebaut die eigentlich nicht anderes machen soll als Parallel 8 Bit einlesen, seriel übertragen und dann wieder auf einer zweiten Schaltung mit einem AT90S8515 Parallel 8 Bit ausgeben. Das klingt eigentlich nicht schwer. ABER, wenn ich auf dem einem AT90S8515 die 8 Bit einlesen
rübergeschick, anstatt sie einzulesen und das geht wunderbar. Doch sobalt ich die Signale auf dem PortC einlese und mehr als 3 Einsen habe spinnt die Schaltung ab. Der Witz an der Geschicht is ja wenn ich das durch den Simulatro jage geht das auch, da spinnt er nicht. So und hier der Quellcode. .NOLIST
-
Thread
Lerncomputer so wie KOSMOS CP1 nachbauen
auch in einem 45er) unterkommen. Oder man spart sich die beiden I2C I/O Expander und realisert 2 Ports auf bspw. einem ATMega8. Das Speichern auf Kassette "emuliert" man auf dem internen EEProm des AVR. Auf einem ATtiny85 oder einem ATmega8 hat man dann doch glatt 512 Bytes Platz, was dann 4 kompletten
AVR im PDIP-40 hat der 4 komplette Ports, also 32 IO-Pins. Ungeachtet dessen, halte ich die Idee für nicht sonderlich ergiebig. Aus eigener Erfahrung kann ich sagen die Kinder (ok, die mir bekannten
-
Thread
ESP32 als Modul-Emulator für den C64
bekomme. Wenn ich nun aber über den Interrupt auf den Tackt des C64 warte, dann die Adresse bittweise einlese über A0-A15 und dann das Byte bitweise auf die Datenleitungen D0 bis D7 lege, dann ist das zu langsam. Bei meinen Atmel-Chips konnte ich das damals im Atmel AVR-Studio deutlich leichter machen
T.: Das Problem ist, dass ich mit dem aktuellen Code deutlich mehr Tackte benötige, da ich jeden Port einzeln einlese ;) Warum ist ein ESP32 keine gute Wahl? @Mario M.: Danke für den Hinweis. Ich werde mal damit rumexperimentieren und am Oszilloskop die Zeiten messen. :) Gruß Frank
-
Thread
Grundsatzfrage: Kommunikation <-> Eigenentwicklung
USB Hub, der gibt dem Laufwerk einen Port durch und ein zweiter USB Port vom Hub soll zum AVR gehen. >ohne virtuellen Comport oder libusb mit eigenem speziellen Programm >wirst du da nicht auskommen. Naja, wenns da keine fertigen Komponenten
in meinen Wechsler >>2. Im Wechsler ist ein ganz normaler USB Hub, der gibt dem Laufwerk >>einen Port durch und ein zweiter USB Port vom Hub soll zum AVR gehen. >ich hab >>Und wie gesagt ich möcht nix mit virtuellem COM Port machen. Also der >>Wechsler soll dann später mal als USB Gerät erkannt
-
Thread
Newbie: Welches FPGA verwenden?
> Wenn du das noch ein wenig clever an den Mikrocontroller anklemmst, ist > das insgesamt: 8 Ports einlesen Die Ports sind schon mal 16 Bit breit... ;-)
>> Wenn du das noch ein wenig clever an den Mikrocontroller anklemmst, ist >> das insgesamt: 8 Ports einlesen > Die Ports sind schon mal 16 Bit breit... ;-) Ja, ich habe halt doch mit AVR gelernt, doch ich denke es ist klar was rüber gebracht werden soll. Ich weiß nämlich nicht warum hier alles
-
Thread
Taster als Schalter
Hallo, kann mir jemand erklären, wie ich bei einem Atmega per Taster an einem Port LED's an einem anderen Port ein und ausschalten kann. Es würde es mir reichen, wenn ich ein beispiel für z.B. 2 Taster an einem Port und 2 LED's an einem anderen Port hätte. Darauf könnte ich dann
denn ? Quadkommas link sollte dir doch schonmal zeigen, womit du anfangen musst (Beschaltung der ports).
-
Thread
Verifying Flash Failed
ATmega8 mit meinem Programm beschreiben, dazu benutze ich das MySmartUSB light Programmiergerät und AVR Studio6. Mit dem Controller kann ich kommunizieren (Device signature einlesen usw.) nur wenn ich ihn beschreiben will, bekomme ich immer folgende Meldung: Verifying Flash...Failed! address=0x0000
Unbekannt schrieb im Beitrag #3247537: > achja... ganz vergessen. ich kann alles einlesen bis auf die > Versorgungsspannung! > hab den Mikrocontroller per USB angeschlossen! Meintst du damit das du einen (2`ten?) usb port belegt hast und von dort die spannung zum betreiben des µC
-
Thread
Grafikfähiger LCD Controller für 320x240 LCD mit D-RAM
ATmega644P zu sein. Nun gut, wollt das Projekt neu kompilieren und das ging leider nicht. UMGEBUNG: AVR-Studio 4.13 mit WINAVR-20100110, AVR-GCC. Irgendwas haut mit den Inline-Assembler-Files unter AVR-Studio4 nicht hin! < Hier mal ein paar Fehlermeldungen > Error: constant value required Error
"SIG_USART_DATA" --> "USART0_UDRE_vect" eingertagen hier: (uart.c) [c] #elif defined(__AVR_ATmega48__) || defined(__AVR_ATmega88__) \ ||defined(__AVR_ATmega168__) || defined(__AVR_ATmega644__) #define ATMEGA_USART0 #define RXCIE RXCIE0 #define TXCIE TXCIE0 #define RXEN
-
Thread
Taktsignal einlesen mit USB
Abstand die teuerste Variante werden. Hier geht's los: http://www.mikrocontroller.net/articles/AVR-Tutorial http://www.mikrocontroller.net/articles/AVR-GCC-Tutorial =)
Einfach die Signalleitung an einen Port-Pin hängen und schnell genug abtasten. Dann das Signal auswerten (in Zahlenwerte umwandeln) und diese Werte dann über USB an den PC senden. Gruß
-
Thread
Einzelnes Bit im RAM schreiben oder lesen
nicht allzuviel Rechenzeit dauern, weil die 5 bit breiten Datensätze möglichst schnell von einem Port gelesen werden müssen. Es soll ein Logic Analyzer werden. Ich benutze C auf einem Atmega 328P. Danke!
Byte zu packen, fehlt ein bit, aber doppelte länge, evt etwas langsammer - 8 Bytes auf einmal einlesen, einlesen b1 und b2, 4+4 bit zusammen packen wegschreiben, das 5 bit in ein anderes byte reinschieben, nach 8 spamples auch das wegschreiben. - Einlesen, gucken ob der Wert identisch mit dem vorherigen
-
Thread
Pollin CPLD Board Erfahrungen?
> Hmm nach Datenblatt (fals es der ist), hätte er was zwischen 55 und > 70nS. > Daraus ein 16 Port á ~10MHz Logikanalyser zu bauen wird wohl nichts > oder? Bei 55ns wären es 18MByte/s. Das ergibt 9MHz bei 16bit, also nicht wirklich viel.
Mainboards_Zubehoer/Diverse/Multi_I-O-Karte_PCI_2S+1P/315046/? Es steht da: "Unterstützt Standard Parallel Port (SPP), Enhanced Parallel (EPP) & Enhanced Capability Port (ECP)" Nun sagt mir das jetzt erst einmal recht wenig, ob das wirklich ein vollwertiger Ersatz ist. Aber vielleicht kennt sich jemand von
-
Thread
I/O Ports ATmega16
pulse, NRD low wait(); // hier müssen mindestens 65 ns vergehen, UDR = PINC; // byte einlesen portd.4 = 1; // und read pulse beenden, NRD = 1 portd.6 = 1; // chip select wieder wegnehmen Also ich muss bei dem anderen Chip einen Read-Impuls auslösen was ich über PORTD mache. Über PortD
, einer low einer high ....... -> exitus für 2 Ports
-
Thread
Wie lange prellt ein Taster in der Regel?
als Tastendruck gewertet werden" filterst nicht. Daher ist der übliche Code zum entprellten Einlesen mein erstes Programmbeispiel, und hier noch mal für dich in Assembler IN a,KEY_PORT MOV key_new,a EOR a,key_old ; changed AND a,key_new ; pressed : : a enthält gesetztes
Geschlossensignal sofort und eindeutig als Tastendruck gewertet werden" filterst nicht. Durch das pure Einlesen (ohne "Filter") wird es trotzdem automatisch gefiltert, nämlich von der Integrat.dauer des uC-In-ports. (nur diese Zeit (einige ns) ist viel zu kurz)
-
Thread
LED Blinker Multitasking Attiny 85
dem Analog-Digital-Umsetzer auf > einer SD Karte zu loggen mit einer txt Datei die man in Exel einlesen > kann. Sehr spannendes Vorhaben, es gibt ja nur (gefühlt) 20.000 Lösungen für AVR-Datenlogger bisher... Ich würde dir eher empfehlen, dir eine der bestehenden Lösungen zu greifen und zu versuchen
LED1 as PortB.0 LED1.mode = output Avr.Interrupts.Enable // Globale Interrupts einschalten Timer0.Cmp.Isr = meineServiceRoutine // Serviceroutine zuweisen timer0.pwm.mode = 2 avr.ocr0 = 199 Timer0.Cmp.Enable
-
Thread
Programmieren mit CodeVisionAVR
Ja ich will ja bei CodeVisionAVR Programmieren weiß nur nicht wie man z.b Ports zu weißt bzw. Register kann mir vllt einer einen anfang schreiben damit ich das prinzip verstehen kann wäre echt nett sonst komm ich nie weiter suche schon
LED ausschalten in dem ich das mit dem If-Befehl vergleiche oder muss das anders geregelt werden im AVR-Tutorial wird das ja über kopieren gemacht in r16, PIND ; an Port D anliegende Werte (Taster) nach r16 einlesen out PORTB, r16 ; Inhalt von r16 an Port B ausgeben rjmp
-
Thread
Assembler - Erste Schritte - I/O ansteuern
, habe 3 Ausgänge parallel an alle MUX-Steuereingänge angeschlossen. Jetzt will ich diese ADCs einlesen, habe also 8x8=64 Eingänge.... Benutze AVR-Studio, PonyProg2000, die Hardware ist ein Board von Pollin mit eingesetztem mega8 (werde aber auf mega8535 oder mega16/32 umstellen). Die MUX sind 74hc4851
Pin 0,1,2 in r16,PortX ; Portbelegung einlesen andi r16,0b11111000 ; Adressbits löschen ldi r17,MUXAdresse andi r17,0b00000111 ; nur Adressbits (zur Sicherheit) or r16,r17
-
Thread
Frage zum Einlesen eines Portregisters in Assembler
Hallo, ich warte noch auf mein STK500 und mit AVR Studio habe ich mich auch noch nicht auseinander gesetzt. Dennoch mal eine Frage: Mit ldi r20,255 out ddrc,r20 out portc,85 wir PortC zum Ausgansport und die Portpins sind abwechseln High und Low. Frage: Kann ich zu einem späteren Zeitpunkt in meinem Programm abfragen, wie die Portpins gesetzt sind? Also mit ldi r20,0 out ddrb,r20 wir PortB zum Eingangsport und mit in r20,pinb bekomme ich das "anliegende Byte" in das Register r20. Geht sowas
-
Thread
Atmega8 fusebit´s
am LPT-port.Hab aber keinen LPT port nur usb,deshalb will ich das mit dem USBasp machen.aber nicht in der Schaltung sondern extern. Hab halt gedacht: "fragst mal hier nach,befor ich den Pavel kontakte
. Ich nutze z.B. das STK500 und den AVR-Dragon. > Hab aber keinen LPT port nur > usb,deshalb will ich das mit dem USBasp machen.aber nicht in der > Schaltung sondern extern. Der USBasp ist doch auch für ISP in der Schaltung geeignet
-
Thread
ADC- Wert in C-Programm einlesen
nicht anderst sein. Des weiteren gibt es hier ein Tutorial: http://www.mikrocontroller.net/articles/AVR-Tutorial:_ADC Was ist daran so schwer?
Datenblatt auch für den UART ein einfaches Beispiel Und hier auch: www.mikrocontroller.net/articles/AVR-GCC-Tutorial#UART
-
Thread
Suche uC zum Pegel einlesen und auf CAN ausgeben
mit dem einen A/D wandler kann ich dann nur einen Sensor einlesen der Analoge Spg ausgibt !? was gibt es da den für möglichleiten das man mehrere solcher signale einlesen kann !? oh man je mehr ich hier mich informiere umso mehr verwirrt mich des alles hier
Jedenfalls ist das ein geeigneterer Einstieg in Mikrocontroller als die 32bitter. Wirst aber noch einen AVR Programmer benötigen.
-
Thread
Externes RAM an AVR
kann auch mit weniger Pins (8+4?) auskommen, wenn man das XMEM-Interface nicht benutzt bzw. einen AVR ohne die entsprechende Schnittstelle hat. Mit zwei 8-bit Latches kann man so 64kB ansprechen. Einfach die Adresse nacheinander in die Latches schreiben und dann die Daten einlesen. Geht natürlich zu
Hallo Christian, verzeih mir die Frage, aber hast du schon mal mit einem avr gearbeitet?? Die schnellsten avrs kannst du mit 20MHz takten, Port einlesen braucht zwei Taktzyklen und Sprung in der loop braucht wieder zwei Takte. -> du könntest mit max. 5MHz samplen, von Daten
-
Thread
Open Source CAN-Bus Analyse Tool
mit DLC 0 wegschaufeln können. Da kommt halt alle 130uSek ein Paket. Ob man das mit einem 16Mhz AVR durch Bitwackeln am Port wegschaufeln kann, wage ich zu bezweifeln. Mach doch mal was gescheites, nimm einen STM32, benutze den internen CAN und den USB, denke dir ein gescheites Protokoll aus
> DLC 0 wegschaufeln können. Da kommt halt alle 130uSek ein Paket. > Ob man das mit einem 16Mhz AVR durch Bitwackeln am Port wegschaufeln > kann, wage ich zu bezweifeln. Glaube ich nicht, in meiner eigenen Hardware verwende ich einen DMA Transfer für die Kommunikation. > > Mach doch mal was
-
Thread
Timer beim AVR, ich kapiers nicht
ist nun, dass ein Timer-Interrupt just nach dem Einlesen des Ports im Hauptprogramm stattfindet, deinen PORTC.1 toggelt und nachdem die INT-Routine abgearbeitet wurde, überschreibt das Hauptprogramm deinen grad getoggelten PORTC.1 wieder mit dem alten Wert
Hi, @Cristof Krüger: "Das toggeln eines Pins kann bei einem AVR nie atomar sein, man braucht dazu also immer mehr als nur eine Anweisung, bei der immer erst der gesamte Port in ein Register gelesen, das eine Bit getoggelt und dann wieder geschrieben wird." Es
-
Thread
1-Wire Slave auf AVR
lasse. So läuft das aber seit drei Jahren ohne Fehler. // Timer interrupt routine #ifdef __AVR_ATtiny13__ ISR (TIM0_OVF_vect) #elif defined (__AVR_ATmega8__) ISR (TIMER0_OVF_vect) #endif // Port als Ausgang { unsigned char tim0_i, status; signed int temperaturwert, temperaturwert_bruch
Beitrag #2457964: > Ich werde mich jetzt mal mit Hilfe der Forensuche näher in die > Problematik einlesen, um meinen Horizont diesbezüglich zu erweitern. Lies doch lieber gleich das Original. ;-) http://www.nongnu.org/avr-libc/user-manual/group__avr__interrupts.html (Könnte sich gut und gern
-
Thread
AVR ATmega 32 Soft-PWM erzeugen funktioniert nicht
einlesen und verarbeiten. Warum einlesen? Die Soft-PWM erzeugt PWM-Signale, also AUSgabe. > Das Ergebnis des Versuches > ein PWM Signal zu erzeugen habe ich mit einem Oszi überprüft. Da kam ein > annähernd
Signal mit ca. 50 mV raus (also nur "Rauschen"). An welchem Pin hast du das versucht? Irgendwo an PortC? Dann JTAG-Fuse überprüfen. Oder PortA?? Dann überprüfen, ob die Versorgung auch an AVCC und AGND korrekt angeschlossen ist.
-
Thread
93C46 Lesen Schreiben mit Ponyprog und Selbstbau Adapter
unter Windows 10... versuch nun mal Win 7 Selbes Problem. Daten aus dem Chip sehen bei jedem einlesen anders aus....
userport.sys installiert ist. Ist allerdings für den Parallelport und nicht für die seriellen Ports.
-
Thread
RFM01/02 Basics
'Uart-Interruptroutine deklarieren Enable Urxc Enable Interrupts und dann die ISR zum einlesen, (außerhalb der do-loop Schleife): Onrxd: incr n Tx(n)=UDR 'Uart-Daten ins array einlesen return Im Hauptprogramm dann n > wert abfragen, wenn ja ->senden & danach n auf 0 setzen
ja gleich zum senden des arrays?! sind 100ms eine ausreichende wartezeit? warum wird das einlesen der daten eigentlich beim senden des arrays unterbunden? lg
-
Thread
Arduino: abwechselnde Verwendung von A4/A5 als analoger Input und I2C
schrieb im Beitrag #6745444: > Anbei mal der Schaltplan. 2 Taster pro analog-Input http://www.avr-asm-tutorial.net/avr_de/apps/tasten_schalter_adc/tasten/tasten.html Mach das halt so, dann hast Du die Analogports frei.
Tastendrücke auswerten kann und extrem zuverlässig funktioniert. Es gibt übrigens bei NXP I2C Port-Expander mit bis zu 40 IO Funktionen als 5 Byte-Ports organisiert. (PCA9698) Sind nur meine bisherigen Erfahrungen. Jeder sieht das natürlich anders und man braucht sich nicht darüber zu streiten
-
Thread
sbit macro für avr-gcc
Mit AVR Studio hat das alles nichts zu tun. Der AVR kennt erstmal keine Bitvariablen. Man kann das mit Bitfeldern in C realisieren, wenn du das unbedingt willst, aber die AVR-Ports sind natürlich erst
methode zwar auf der "Obsolete IO macros" liste, aber funktionieren tut es auch. [c]#define sbi(port, bit) (port) |= (1 << (bit))[/c] {quelle: avr-libc-user-manual-1.4.5.pdf S.48} ich verstehe nur die begründung nicht ganz warum dieses makro entfernt wurde: "These macros became obsolete, as
-
Thread
Timer1 LED Uhr test mit modulo
ausgehen. [c]#ifndef F_CPU # define F_CPU 7372800 /* 7.3728 MHz */ #endif #include <avr/io.h> // Registernamen #include <stdlib.h> #include <util/delay.h> #include <inttypes.h> #include <avr/wdt.h> #include <avr/interrupt.h> #include <string.h> volatile uint16_t counter = 0;
eine Version mit minimaler Interruptsperre zum nachdenken: [c] #include <stdint.h> #include <avr/io.h> #include <avr/interrupt.h> volatile uint8_t counter = 1; void timer1 (void) { TCCR1B = (1<<CS11)|(1<<CS10); // Vorteiler: 64 TIMSK = (1<<TOIE1); // Overflow Interrupt aktiviert
-
Thread
ATMega 16 Thermometer Display zeigt nichts an
(unsigned char cmnd) { LCD_DATA_PORT = cmnd; LCD_CNTRL_PORT &= ~(1<<LCD_RW_PIN); LCD_CNTRL_PORT &= ~(1<<LCD_RS_PIN); LCD_CNTRL_PORT |= (1<<LCD_ENABLE_PIN); _delay_us(2); LCD_CNTRL_PORT &= ~(1<<LCD_ENABLE_PIN); _delay_us(100); } void LCD_send_data(unsigned char data) { LCD_DATA_PORT = data; LCD_CNTRL_PORT &= ~(1<<LCD_RW_PIN); LCD_CNTRL_PORT |= (1<<LCD_RS_PIN); LCD_CNTRL_PORT |= (1<<LCD_ENABLE_PIN); _delay_us(2); LCD_CNTRL_PORT &= ~(1<<LCD_ENABLE_PIN); _delay_us
-
Thread
Anfängerfrage zu µC programierung
Nachtrag: Benutzte AVR Studio und programmmiere in C
Was soll das >PORTD=(1<<PB2); damit schaltest du auf PortD für den 2. Pin den Pullup an (etwas fehlerhaft formuliert) kann es sein das die Lichtschranke einen Opencollector Ausgang hat und du meintest PORTB=(1<<PB2); Pullup an PortB2 ?
-
Thread
AVR STK500: Motoransteuerung / einfaches Assemblerprogramm
richtigen" Programm realisieren, nur leider weis ich nicht sorecht wo ich anfangen soll - trotz Einlesen in mehrere Tutorials. An und für sich dürfte das Programm ja nur so 10 Zeilen Code haben. Im Wortlaut ungefähr so: Wenn Switch0 betätigt wird, lege HIGH auf PB00 (Pin0 PortB). Wird Switch1 betätigt
Wäre das nicht über eine Konstante denkbar? Eben 1 und 0. Also anstelle von inc eine Konstante einlesen, und mit dem andern Switch (Port D, pin 1) die Konstante durch eine andere (-> 0) ersetzen. So nach dem Motto: [avrasm] [...] ;Code-Ausschnitt! sbis PIN,0x00 LDI Temp, 1 sbis PIN,0x01 LDI
-
Thread
Verständnissproblem LCD 4-Bit Mode
auf Ausgang gewechselt werden soll, gilt das gleiche, damit das Display keine undefinierten Daten einlesen kann. Außerdem nutze ich immer die gleiche Reihenfolge: Port ist immer Ausgang, Daten setzen, RW setzen, RS passend setzen, E oder CS-Puls, RW zurück auf Lesen. Beim Lesen Portrichtung ändern, RS passend setzen, E oder CS aktivieren, Daten einlesen, E oder CS inaktiv, Daten auswerten. Wenn nötig, kommen da noch Verzögerungen oder ein NOP dazwischen (z.B. zwischen E/CS aktiv und dem Einlesen der Daten, der AVR setzt die Portbits erst im nächsten
-
Thread
AVR Ethernet Platine
würden aber dazu führen das ich 7 Tage an dem Source arbeite nur um ihn speziell für kleine CPLD's und AVR's mit wenig SRAM anzupassen, die Flexibilität geht dabei flöten. In 2 Stunden hat man aber das ParPort JTAG Kabel selber gelötet und WEBPack installiert, und in +30 Minuten schreibe ich euch eine
Investiere die Zeit und lies mal alle Beiträge über Dir. > L102, die Induktivität vor dem AVR von der wiederum L101 nach AVCC > geht, wird ersatzlos gestrichen. Wenn alle Ports, also PORTA bis PORTG > mit einer Zählvariable durchgewobelt werden, liegt an AVCC eine > Störspannung von >1V an
-
Thread
SNES Controller auslesen mit AVR Atmega88
Hallo, Leute! Ich bin immernoch am Einsteigen mit Assemblerprogrammierung und wollte ein bisschen üben, indem ich den SNES-Controller auslese. Das Schema, wie die Daten abgegriffen werden ist folgendes (siehe: Anhang 1): SNES schickt 12μs das Latch Signal auf 1. Der Controller weiß: Abfrage beginnt. Während des Latch Signals wird erster Button geprüft und in ein Schieberegister geschoben. Wenn er gedrückt ist, geht die Verbindung auf Ground. Nach dem Latchsignal kommen 6μs Pause. Danach geht für 6μs das Clocksignal auf 1 und dann wieder für 6μs auf 0, während der nächste Button geprüft
-
Thread
pic18f2520 alternativer avr
würde. Es ist viel einfacher beim PIC zu bleiben und sich den Nachmittag für die Unterschiede zum AVR zu nehmen, als den AVR durchdrücken zu wollen und nur Nachteile in Kauf zu nehmen. Ein Umstieg auf AVR ist in diesem Fall soetwas von Unökonomisch... Gruß Carsten
wie LCD Displays generieren kann! Wir reden also nur davon das jemand lernen muss statt wie beim AVR: "PORTB |= ((1 << 0)" beim PIC entweder "LATB &= 0xfd" *ODER* "LATBbits.LATB0 = 0" zu schreiben um den pin 0 von PORTB auf Low zu setzen. (Statt LatB kann man auch PortB nehmen, das manipulieren
-
Thread
Tiny13 : Problem beim Entprellen mit internem Pullup
Ähm [C] #include <avr/io.h> #define KEY_DDR DDRB #define KEY_DDRNO DDB1 #define KEY_PORT PORTB #define KEY_PORTNO PORTB1 #define KEY_PIN PINB #define KEY_PINNO PB4 volatile int KeyCounter; void ButInit() {
es bei dir ja so, dass ein paar von den PORT Bits ja eine spezielle Bedeutung haben: Sie sind für den Pullup zuständig. D.h. selbst wenn dieses Bit beim einlesen von PIN eine 0 bringen würde, willst du diese 0 auf keinen Fall ins PORT Register
-
Thread
Angfängerproblem mit dem ADC
messen 2. Den Sensor an dem ADC des Atmega16 anschliessen und die vom Sensor gelieferten Signale einlesen Also, wie ich verstanden habe, kann man den Sensor direkt mit dem PortA verbinden . Die Versorgungspins vom Sensor sind mit Pins VTG und GND, der Eingangpin des Sensors mit PA0 und Ausgangspin
die Messung zu > starten und die Zeit messen (ggf. erstmal zählen), die > bis zur Rückmeldung (Port wieder Low) vergeht. Den Port zwischendurch von Ausgang auf Eingang umschalten nicht vergessen.
-
Thread
Analoge Ports auslesen
kann mir jemand helfen. Ich suche ein Programmbeispiel in > Assembler mit dem ich mehrere Analoge Ports hintereinander auslesen > kann. Was ist ein 'analoger Port'. Auf welchem Prozessor?
Hallo, ok ich nenne die Ports in Zukunft ADC! Soweit so gut, wann weiß ich denn zu welchem Zeitpunkt die Wandlung fertig ist?
-
Thread
erstes Programm mit AVR Studio
, dafür habe ich den Port B, Pin0 doch auf 1 gesetzt, oder? Jetzt ist er doch high und die LED müsste brennen? Ich benutze ein STK-500 Board, und eine Atmel 8515. Ich habe es simuliert, aber ohne Erfolg, wenn ich in AVR Studio
/delay.h> /* bei alter avr-libc: #include <avr/delay.h> */ /* Einfache Funktion zum Entprellen eines Tasters */ inline uint8_t debounce(volatile uint8_t *port, uint8_t pin) { if ( ! (*port & (1 << pin)) )
-
Thread
Interface für 10€- Messschieber
einlesen, die Messwerte noch verwurschteln, über RS232 ausgeben und auch an einem LCD-Display anzeigen.
Code gepostet ? Ich versuche verzweifelt die Daten die an RS232 geschickt werden an den Display ( Port D) zu schicken, aber ich denke da bin ich nicht gut genug für. Na ja , bin da eher schlecht. Versuche den Code hier , von diesem Thread umzustricken. mfg Bravo
-
Thread
benötige Hex-Datei für PIC16F628A
Mikrosekunde gleich bedient werden. Wer fordert das? Ich habe keinen PIC-Compiler. Auf einem AVR (ATtiny261) könnte das komplette Programm so aussehen. [c] #include <avr\io.h> int main(void) { DDRA = 0xFF; // Port A = 8 Outputs uint8_t mask = 0b10000000; do {
Und wie soll der TE den AVR mit seinem PICKIT-3 brennen?
-
Thread
Auswertung mehrerer Drehencoder
74HC165 einlesen und gut.
man per > Schieberegister ala 74HC165 einlesen und gut. OMG!!! So ein Käse!
-
Thread
lokale Variable + volatile funkt nicht
Optimierung. D.h. zwischen setzen des Ports und Einlesen muss gewartet werden. Bei der Variante ohne Optimierung hat es funktioniert, weil eben der LDS Befehl zwei Zyklen benötigt. Jedoch habe ich noch eine Frage. Sieht man sich den Schaltplan
> D.h. zwischen setzen des > Ports und Einlesen muss gewartet werden. Das ist ein alter Hut. Bin ich auch schon drüber gestolpert. ;-) Beispielsweise im Datenblatt vom ATmega640 & Co., Seite 86 Mitte: ``When reading back a software
-
Thread
[AVR-ATmega8] LCD-Menü mit 2 Tastern
Ich verwende den AVR-Studio.. Der momentane Code: [c] #include <avr/io.h> #define F_CPU 3686400UL #include "myavr_lcd.h" #include <util/delay.h> #include <avr/pgmspace.h> #include <string.h> #include
der Auswahlmöglichkeiten lang wird... Das wird wohl nicht der Fall sein. Denn es wird ja ein myAVR-Board mit Mega8 eingesetzt, da gibt es nur 6-Bit-Ports, von denen das LCD schon einen kompletten Port braucht. Tasten brauchen auch Pins, somit bleibt nicht mehr viel zum Simulieren (Eingänge für Schalter
-
Thread
Es erscheint nichts auf dem Seriellen Monitor?
-prefs=build.warn_data_percentage=75 -prefs=runtime.tools.avr-gcc.path=/opt/arduino-1.8.19/hardware/tools/avr -prefs=runtime.tools.avr-gcc-7.3.0-atmel3.6.1-arduino7.path=/opt/arduino-1.8.19/hardware/tools/avr -prefs=runtime.tools.arduinoOTA.path=/opt/arduino-1.8.19
-DARDUINO=10819 -DARDUINO_AVR_MEGA2560 -DARDUINO_ARCH_AVR -I/opt/arduino-1.8.19/hardware/arduino/avr/cores/arduino -I/opt/arduino-1.8.19/hardware/arduino/avr/variants/mega /tmp/arduino_build_142490/sketch/foo.ino.cpp -o /dev/null
-
Thread
Problem mit dem AVR UART
mit I/O-Ports macht, beim AVR nicht gibt. Gruß aus Berlin Michael
Hi @Michael Wenn ich irgendwelche Bits erhalten muss, ist ein Einlesen notwendig. Es gibt aber auch genügend Fälle, in dem man ein Register 'hart' überschreiben kann. Dann ist ein Einlesen unnötig. MfG Spess
-
Thread
Microcontroller
http://www.mikrocontroller.net/articles/AVR-GCC-Tutorial
hallo Florian, ich habe letzte Woche so etwas geschrieben, ich nenne es "AVR serial port control". Ein PC kann über USB, resp. RS232 TTL einen Atmel steuern und Bits ausgeben und einlesen. Als Befehle habe ich bisher dies implementiert: [c]-- Hilfe [v,V] -- Versionsanzeige