-
Thread
GPS Standpunkt einmal pro Tag bestimmen
port is used for communicating with AVR Studio. The other RS-232 can be used for communicating between the target AVR microcontroller in the socket and a PC serial port connected to the RS-232. To use the RS-232, the UART pins of the AVR need to be physically onnected to the RS-232. The 2-pin header marked “RS232 SPARE” can be used for connecting the RS-232 converter to the UART pins on the target AVR microcontroller in the socket
-
Thread
Lötstation nachbauen, aber welche
sicher und wollte da keine grösseren bugs reinsauen. Du weist ja never touch a running system ;) AVR-Studio hab ich ichs auch mal probiert, aber da gabs noch mehr probleme mit f-cpu und so, das war mir dann zu blöd das weiter mit avr-studio zu verfolgen...
, das freut mich. Welche Station hast du denn gebaut, die mit dem analogen Regler oder die mit dem AVR und dem digitalen Regler? Joachim
-
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
Gezieltes auslesen von Cmos Kameras ohne PC
ganz bloede Frage: Wenn du sowieso einen Blackfin verwenden willst, wozu brauchst du dann noch einen AVR? Alles was der AVR kann macht der Blackfin noch locker so nebenbei (nur einen internen AD-Wandler gibts nicht)... Wenn du ernsthaft noch einen AVR brauchst kannste etweder einfach ueber GPIOs (General purpos I/O, wie die Pin/Ports beim AVR) kommunizieren oder ueber eine der seriellen Schnittstellen: UART, I2C, SPI. Aber du klingst noch nicht so als waerst du mit dem Verstaendnis der ganzen Thematik und insb. dem Blackfin
-
Thread
Spannungspegel für I/O Port
Hallo zusammen. Ich will mal nachfragen ob jemand weiß wie hoch der Spannungspegel sein muss das ein AVR ein High Signal erkennt, Bzw. wo liegt das Maximum für das Low Pegel? Es geht darum das ich ein 3V Signal einlesen muss. Laut C-MOS Pegel liegt das zwischen H und L Level. Bei TTL wäre es noch im High- Bereich. Leider hab ich im Datenblatt nix gefunden. Kann mir da jemand weiterhelfen? mfg LPT
-
Thread
MiniMEXLE Display und Taster
Lies dich in den Artikel http://www.mikrocontroller.net/articles/AVR-Tutorial:_LCD ein. Speziell: Was ist die Funktion der Leitungen RS und E.
fertig bist, solltest Du die Pins wieder als Eingang re-initialisieren, um eben die Taster wieder einlesen zu können. In der MiniMEXLE V3.0 wurden die Dioden über den Tastern gegen 4k7 Widerstände ausgetauscht, was verhindert, dass bei gedrücktem Taster das Display korrupte Daten empfängt. Ist alles
-
Thread
Hilfe Bei Assembler Program
Stefan P. schrieb: > Die Segmente werden nacheinander von PortA > aktiviert. Das Ergebnis soll mir an PortB angezeigt werden. Du tappst in diese Falle: http://www.mikrocontroller.net/articles/AVR-Tutorial:_IO-Grundlagen#Stolperfalle_bei_Matrixtastaturen_etc
Hallo Stefan, in der Simulation läuft dein Programm nur, wenn man den Zustand von Port C genau zwischen der Ausgabe auf Port A und dem Einlesen von Port C ändert. Macht man diese Änderung zu spät, kommt es zu Deinem Effekt. Nehme an, das der Transistor nicht schnell genug sperrt. Füge
-
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
SJA1000 und ATmega32A
gefragt? Ohne mir jetzt den Code angeschaut zu haben, ist das JTag abgeschalten? Liegt ja auf PortC. Gruß Rene
ohne es jetzt getestet zu haben mal schnell zusammengewürfelt. (Bin noch auf Arbeit) [c]#include "avr/io.h" #define ALE 0 #define RD 2 #define WR 3 #define INT 5 void Init_Port(void){ // Datenport Eingang, sicher ist sicher DDRC = 0x00; //Pullup an PORTC = 0xFF; // ALE, RD,
-
Thread
Anfängerprojekt
Arduino-Boards, die einen USB-Bootloader an Bord haben. Ich vermisse an dem AT90USB162 auf dem AVR-USB-162 die [[ADC]] Eingänge für das Digitalisieren deiner analogen Signale. Die auf dem Arduino verbauten AVR z.B. Atmega168 hätten die... Wenn du den Schritt Datenlogger überspringst, vergiss den
folgenden Teil: Und es gibt auch Lösungen mit dem Arduino SD-Cards anzusteuern. Oder willst du das AVR-USB-162 während der Fahrt an einen Laptop hängen? http://www.seeedstudio.com/depot/sd-card-shield-for-arduino-v21-p-492.html
-
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
Wie funktioniert diese diskrete Drehgeberauswertung
Die Schaltung ist aber ein bißchen ungeschickt. Alle Drehgeber an PORT A würde das Einlesen vereinfachen und beschleunigen.
> Alle Drehgeber an PORT A würde das Einlesen vereinfachen und > beschleunigen. Nicht unbedingt... Vorteilhafter wäre es, immer dieselben Bits der verschiedenen Ports zu benutzen. Denn dann könnte einunddieselbe Decodier-Routine
-
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
PIC 32 Erfahrungsberichte
Controller Anwendungen entwickelt wurden, haben keine spezielle Befehlssatzunterstützung für I/O-Ports. Was hat das übrigens mit dem RAM zu tun? Sowohl in PIC24 als auch in PIC32 werden I/O-Ports über normale Speicherbefehle angesprochen. Der Unterschied liegt nur darin, dass die PIC24H im gleichen
Aufgaben interessieren, die praxisnäher sind wie z.B. einem Webserver der per 8/16 bit Bus an die IO Ports angebunden ist, und dessen Daten sich z.B. auf einer SD Karte befinden, nur um mal etwas Peripherie mit ins Spiel zu bringen. Meine Vermutung ist, dass das der Geschwindigkeitsvorteil des PIC32 relativ
-
Thread
Tonsignal verzögern
alternativ fertige Bausteine die das bewerkstelligen. Die Ausgabe muss ev. schon wärend des Einlesens beginnen. Max Länge der NF ist irgendwo bei 300 msec. Conrad hatt(e) mal solche/ähnliche Bausteine. Es kommt nicht auf Hifi an. Kurt
Bit des Port A verfügbar. Über ein R2R Netzwerk gings direkt mit 7 Bit Auflösung raus. Jedoch verunsichern mich die beiden gegenteiligen Aussagen von mr.chip: --------------- Die Sample-Rate kannst du
-
Thread
Porterweiterung SPI konform 74HC165, 74HC589
Widerstandsprogrammer los wenn man es den möchte. > der Programmierung. Naja, man kann wie beim AVR eingach nen fertiges BIT File brennen. > Außerdem muss noch die Software installiert werden. Jagut so ist das halt, aber auch nicht komplizierter als bei einem AVR. > Ich weiß nicht was daran
5V als VCC. Ich nehme daher auch lieber HC165/595. Bzw. man könnte auch einfach nen weiteren AVR als SPI-Expander nehmen, der in Powerdown geht, wenn er nicht selektiert ist. Peter
-
Thread
ADC-MUX verdreher ATmega8535
die ausgewerteten analogen signale und der controller soll nun nur noch beide signale analog einlesen, vergleichen und daraufhin entsprechend die motoren ansteuern. zudem wurde ein ldr installiert (PA6), der die ausrichtung abschaltet, sobald der himmel bewölkt ist. so, jetzt zu meinem problem
assembler und funktionsfähig!) in c umzuschreiben. wie im programm möchte ich die pins separat einlesen und auswerten, jedoch stimmen die MUX-werte des ports nicht mehr... das habe ich auch auf ner testplatine probiert und bei 2 programmierten wandlungen verdreht es auch schon die werte... hierzu
-
Thread
Programm funktioniert nicht
Code mit der ich eine LED blinken lassen möchte (Attiny2313 - 8MHz). Leider blinkt die LED an dem Port nicht in dem gewollen Takt von 1Hz. Derzeit ist die LED etwa 12sec an und 40sec aus. Ich finde den Fehler nicht. #include <avr/io.h> #include <avr/interrupt.h> volatile int Impuls; ISR(TIMER0
verwende zum programmieren den WinAVR.
-
Thread
Mega 8 - ADC
Hallo, ich hab hier das AVR-P8-Board von Olimex mit einem Mega8 und versuche meine ersten Schritte in der AVR-Programmierung zu machen. Led-Blinken, Taster einlesen und Timer laufen lassen hat bei mir auch alles schon gut geklappt
sondern schreibe ihn in die >Variable ADC_Wert. Aber und die schaue ich mir dann im Debug-Modus im >AVR-Studio an. Mit welchem Debugger? JTAG ICE MKII/AVR Dragon? MfG Spess
-
Thread
128 Kanal Schrittmotorsteuerung mit Microcontroller
In den 16 Byte entspricht jedes Bit einem Motor. Du benötigast nur 1 kpl. Port für die Daten und 2 Pins an einem anderen Port für Clock und Übernahme. avr
avr schrieb: > 2 Schieberegister in Reihe steuern 16 Motoren an, 8 solcher > Ausgabestränge sitzen an einem Port. nein, denn... > Damit hast du deine 128 Motoren. je motor braucht er 2 pins. er will
-
Thread
Mega32 und Steckbrett (Anfängerproblem)
http://www.mikrocontroller.net/articles/AVR-GCC-Tutorial#Interne_Pull-Up_Widerst.C3.A4nde
- im PORTx-Register an die gleiche Stelle eine 1 schreiben, damit wird der Pullup aktiviert - Einlesen über PINx-Register.
-
Thread
ADC bei Atmega32
AREF Pin liegt keine Spannung an. Woran könnte das liegen? Hier ist mein Code: [c] #include <avr/io.h> #define LOOP 5 #define COMM_ANODE_R 1 #define COMM_ANODE_M 1 #define COMM_ANODE_L 1 uint16_t readout(); void sev_segm_l(uint16_t number); void sev_segm_m(uint16_t number); void sev_segm_r
nicht oder? ;) Nach meinem Code gibt der ATmega32 eine Dezimale 8 aus, unabhängig davon was ich einlese. Habe ich im Code irgendeinen Denkfehler? Mfg
-
Thread
Inkrementalgeber
euch dankbar wenn ihr mir weiterhelfen könnt, da ich noch Anfänger bin! benutzt wird Atmega8 PortD - PIN5 --> Phase_A PortD - PIN6 --> Phase B gruß
kürzlich Teile des GCC-Tutorial in separate Artikel ausgelagert. http://www.mikrocontroller.net/articles/AVR-GCC-Tutorial/Die_Timer_und_Z%C3%A4hler_des_AVR
-
Thread
Jamara 9g Servo
Die Spannung am Servo passt auch soweit, ich habe sie gemessen. Nun zum Programm: [c] #include <avr/io.h> #include <util/delay.h> int main(void){ DDRE = (1 << DDB2); PORTE &= ~(1<<PB2); //ausgang low while(1){ PORTE |= (1<<PB2); //ausgang high
geht das direkt am Port des avr ? Oder brauchts da einen Transistor / Treiber dazwischen ?
-
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
[V] Mini GPS Module - SkyTraq Venus 6 (22x22x8mm)
kann man das direkt an den rs232-Port des PCs oder mittels eines rs232-usb-adapters an den USB-Anschluss des PCs anschließen?
angeschlossen und mit dem Code leuchtet genau PINC4. [c] #define F_CPU 8000000UL #include <avr/io.h> #include <avr/interrupt.h> #include <avr/signal.h> #include <avr/pgmspace.h> #include "uart.h" #define UART_BAUD_RATE 9600 int main(void) { uart_init( UART_BAUD_SELECT
-
Thread
AVR Entwicklungsboard für Schule
schneller Einstieg (gibts auch von Atmel). Evtl. kann auch hier Atmel für einen Klassensatz helfen. AVR
Kategorie:Projekte Alles mit Unterlagen und Demos. Programmierung oft Basic aber auch C. avr
-
Thread
mega32 pins vergleichen
Ist übrigens Assembler aus dem AVR Studio.
Habe ich gemacht. Ich habe beim PortA generieren die Pins 0 und 1 als Ausgang gesetzt, nur die anderen benutzt, also als Eingänge gesetzt. ldi r16,0xc0 out ddra,r16 Denke das geht auch. T.
-
Thread
Drehgeber auslesen
auch mal nen paar ms, dann ist das Prelle ja eh vorbei. Und während dessen tut er ja auch nix vom Port einlesen. Erst wenn die Aktion beendet ist, gehts ja weiter mit while A
Drehgebern und Entprellen von Tastern benötigt bei halbwegs effizientem Code nicht viel mehr als 1% der AVR-Rechenleistung. ...
-
Thread
Interruptroutine funktioniert nicht richtig
habe mal drüber nachgedacht und zu Beginn der ISR CLI() und am Ende SEI() gestzt, aber das mach der AVR ja eigentlich eh automatisch. Wie kann ich es sonst verhindern ? Zumindest müste ja ein Byte ordentlich eingelesen werden. Mit DDRD=0x00 habe ich PortD als Eingang deklariert. Oder kann man den
sofort nach dem Ende der ISR der Interrupt wieder auslöst (*), und die Werte des erfolgreichen Einlesens überschreibt. (*) Das Warum und die Beseitigung hat Justus schon gepostet.
-
Thread
! Vorsicht NEWB 7-Segmentanzeigen via PC ansteuern
den Aufbau eines Multiplexers. Einfach die Daten seriell hineinschieben. Davor kommt ein kleiner AVR mit RS232-Anschluss. Davor eine RS232-Funkbrücke. Sender an den PC. Empfänger an den RS232 des AVR.
" Displays. Bei insgesamt 13 Displays sind dies (fast) 2 weitere belegte 8-bit-Ports. Hinzu kommen 2 Datenleitungen für RS232. Das heisst, dass Du noch mehr als Port als Reserve frei hast. Nimm einen Controller und steuere Segmente und Displays über Transistor oder Integrierte
-
Thread
POCSAG Protokoll
nach 1 usw. ändert. Präambel Erkennung: Dies macht man am besten so: ACHTUNG PIC ASSEMBLER, kein AVR. #define DISKRI PORTB,x <= Eingang Pin MOVLW d'8' ; 8 Bit = 1 Byte MOVWF BITZAHLER ; Zähler BIT_EINLESEN: CLRF STATUS,C ; zur Sicherheit Carry Flag Löschen BTFSC
schieben DECFSZ BITZAHLER ; Bitzähler -1, wenn 0 dann Überspringe nächste Zeile GOTO BIT_EINLESEN ; Noch kein Byte voll, erneut Einlesen. Wenn dies Schleife Durchlaufen ist hast du das erste Byte von 4. Nun mußt du es mit der Erwartung Präambel vergleichen. MOVLW b'01010101' ; Vergleichswert
-
Thread
3ms Filter für Digitaleingänge
Servus, ich möchte einen 3ms Filter für Digitaleingänge im AVR einbauen. Wie kann das effizient gemacht werden? Man kann hier einfach 3ms warten, um zu sehen, ob der Eingangswert stabil ist, aber der Prozess wird blockiert. Vielleicht nur mit Interrupts? Danke
wie Tasten einlesen reicht: [c] void ISR_all_3ms(void) { Result = InPort(); { [/c]
-
Thread
USART des STK500 für externen ATmega644P nutzen
Contoller (z.B. durch Halten der Taste "F"), so kann ich beim Debuggen mit dem JTAG ICE mkII (mit AVR Studio) nur bei ca. jedem 3. Einlesen ein "F" erkennen. Das DataOverRun-Flag ist praktisch immer gesetzt, bei ca. jedem 2. Zyklus ist auch das FrameError-Flag gesetzt. Baudraten hab ich tausendmal kontrolliert
TXD mit einer >externen Anwendung zu verbinden und die Daten über den RS232 SPARE an >einen COM-Port zu schicken)? Masse sollte schon dabei sein. MfG Spess
-
Thread
Wer hat Erfahrung mit HAP?
kleinen Ultraschallsensor gefunden der seine Daten über I²C oder seriell ausgibt. Wenn man den TWI Port in HAP nutzen könnte, würde ich mir den Umweg über einen kleinen Mega 8 + D/A-Wandler sparen. (Den Analogwert würde ich sonst mit HAP wieder einlesen) MfG Uwe
[i].Port |= (1 << DMS.E[i].Pin); }
-
Thread
ATtiny13 C-Programm zu groß
IC MCU AVR 1K FLASH 20MHZ 20MLF - ATTINY13-20MU - Integrierte Schaltkreise (ICs) Nur 1K FLASH!
nicht in „C“ > versuchen zu programmieren. Und warum nicht? Mag ja aufm PIC anders sein, aber der AVR-GCC ist garnicht so schlecht. Das Programm ist mit der float Multiplikation genau 1130Byte groß, paßt also bequem in 2kB. Und wenns doch etwas mehr sein soll, die AVR 8-, 14- und 20-Pinner gehen
-
Thread
5 Zeiten mit ICP messen -> Problem mit den Timerwerten (ATmega8 und C)
nicht meckern, der Code ist noch nicht sauber formatiert und dokumentiert... [code] #include <avr/io.h> #include <avr/interrupt.h> #include <stdlib.h> #include <util/delay.h> #ifndef F_CPU #define F_CPU 3686400 #endif #ifndef TRUE #define TRUE 1 #endif #ifndef FALSE #define FALSE
So, anbei nun mein kompletter Code: [c] #include <avr/io.h> #include <avr/interrupt.h> #include <stdlib.h> #include <util/delay.h> #ifndef F_CPU #define F_CPU 3686400 #endif #ifndef TRUE #define TRUE 1 #endif #ifndef FALSE #define FALSE
-
Thread
atmega8 mit 3ADCs und 500kHz betriben
daraus erzeugten Digitalsignale dann an normale IO Pins. Wenn alle 3 Rechtecksignale am gleichen Port hängen, kannst du alle 3 Signale gleichzeitig einlesen. Bei 100kHz musst du mit mindestens 200kHz einlesen um die Signale richtig zu erfassen. Da hat der AVR ganz schön was zu tun.
oder immer high wenn er mit genau 200kHz abtasen würde. Davon ab würd ich ehr bezweifeln das der AVR das schafft. Einlesen über Portpins sicher, aber dann noch eine Verarbeitung der Werte dürfte schwierig werden.
-
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
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
Schaltung OK?
Warum ist am COM-Port 1 auf Masse gelegt? Das gehört auf Pin5
ISP-Daten anliegen. Displaydaten z.B sind egal, solange E oder /CS bei Reset = L und damit TriState der AVR-Leitungen nicht aktiv sind. AVR als Eingang darf eben in diesem Zustand kein anderes ICs aktive Ausgänge haben. Das ist mit einem passenden PullUp/PullDown Widerstand an /CS, E, oder was auch immer,
-
Thread
Tasterabfrage
Zustand vom EIN/AUS Taster mit dem Wecktaster 2. Schau dir die Makros von http://www.nongnu.org/avr-libc/user-manual/group__avr__sleep.html an [C] #include <avr/io.h> #include <stdint.h> #define F_CPU 1000000 #include <util/delay.h> #include <avr/sleep.h> #include <avr/interrupt.h>
LEDs zum leuchten zu > bringen. Es wäre *deutlich* einfacher, wenn du die LEDs nur an einem PORT hängen hättest. Dann könnte man prima den Zustand einlesen, verrechnen (verUNDen/verODERn) und in einem Rutsch setzen. Bei der jetzigen Variante musst du teuflisch aufpassen, was mit den übrigen LEDs
-
Thread
Wie fangt Ihr an, ein Project auf dem Controller umzusetzen ?
Funktion, die die Status-LEDs kapselt, schreiben und testen: [c] ... int main(void) { PortInit(); SetLED(GREEN_OK, ON); SetLED(RED_ERROR, ON); while (1) { ; } return 0; } [/c] Danach gleich klären, ob die Timer tun
als Hard- oder Softuart, je nach AVR. Der enthält nur Senderoutinen für send_byte, send_byte_hex, send_byte_bin und läuft meist mit 38400. Daran ein RS232 oder FTDI-Adapter (liegen Steckbrett fertig rum). UART testen und dann kann es
-
Thread
Pollin Touchpad MODEL TM1001A
besonders was ADB angeht, aber wie genau muss ich vorgehen, wenn ich das Pollin touchpad mit einem Avr auslesen möchte? Ich bin für jede hilfe dankbar... hauke
Hast du schonmal I2C am AVR genutzt? Klaus.