-
Thread
AVR - SHT11 liefert zu große Werte
mal bitte jemand drüber schauen ob er einen Fehler findet?!? Gruß Gast [c] #include <avr/io.h> #include <util/delay.h> //Anschlussdefinition des SHT11 #define SHT_SCK_DDR DDRB #define SHT_DATA_DDR DDRB #define SHT_SCK_PORT PORTB #define SHT_DATA_PORT
Taktpin als Ausgang setzen //Transmission Start Sequenz _delay_ms(EINPEGELN); SHT_DATA_PORT = SHT_DATA_PORT | (1<<SHT_DATA_PIN); //Datenpin auf HIGH setzen SHT_SCK_PORT = SHT_SCK_PORT & ~(1<<SHT_SCK_PIN); //Taktpin auf Low setzen _delay_ms(EINPEGELN); SHT_SCK_PORT = SHT_SCK_PORT
-
Thread
write und read Probleme bei Atmel Flash
ist das alles für eine AVR geschrieben, und was da Ports und Pins sind, sollte man für solch eine Projekt schon wissen. >Woher weiß das "Programm" das uint8_t eine 8Bit integer Zahl ist? Das sind Typen aus <stdint.h>.
SPI_CSB ist die Pinnummer: Nehm ich Nummer die auf dem datenblatt steht, also hier die 4? SPI_Port wäre ja dann p1_24: wie weiß ich denn dem uC den Port P1_24 als den gewünschten Ausgang(CSFlash) zu. Bei den Ports bis P0_31 ists mit klar. weiß es nur nicht genau bei den einer ports ja glaub auch
-
Thread
Einlesen von Zählerstand
Hallo, ich bin Anfänger in Sachen MC Programmierung. Ich hoffe mir kann einer weiterhelfen. Ich habe folgendes Problem. Ich möchte mit einem Atmega32 einen 16 Bit Zähler auslesen. Die Daten gehen an die Ports A und B. Dabei steht PA0 für das niederwertige und PB7 für das höchstwertige Bit. Kann mir bitte einer ungefähr sagen wie ich diese Leitungen auslesen kann, so dass ich nachher einen einzigen Zahlenwert der Wertigkeit bekomme? Das wäre echt super! Ich habe keine Vorstellung wie man das realisieren kann. Vielen Dank schonmal! Gruß Thomas
-
Thread
Switch case geht nicht auf MC
unsigned char uPortB; uPortB = PORTB; switch (uPortB ) . . .
Beim Einlesen eines Ports musst du das PINx Register benutzen und nicht das PORTx Register. Binäre Konstanten gehen wohl, zumindest beim GCC mit vorhandenem Patch. Und Die Sache mit uPortB wird vermutlich auch
-
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
Abtastung Inkrementalgeber
Zeit. Es sollte etwas mehr Zeit zur Verfuegung stehen weil man alle sechs Leitungen an einem Port anordnen kann und dann beim einlesen auswerten einiges parallel laufen kann. Ich halte das schon fuer machbar. Die Frage ist nur warum 100kHz. Deshalb weil sich die Encoder so schnell drehen
aktuelle Datenbit ein, das wiederholt man solange bis man alle Datenbits eingelesen hat. Wenn Du einen Port für alle Datenleitungen benutzt und die Drehgeber synchron taktest, kannst Du die Datenbits von allen 3 Drehgeber gleichzeitig einlesen. Wenn es denn ABSOLUT Inkrementalgeber ;-) sein müssen, würde
-
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
Sensoren & Conrad Experiment Interface
Adapter ranhängen, wenn man auf dem PC keine RS232 hat sondern nur USB. http://www.embedtronics.com/avr/tempavr.html Alternativ ein µC-Board mit integriertem RS232 bzw. TTL nach USB Hardwarechip oder Softwarelösung.
Hallo, ich wollte mal nachfragen, ob sich das Problem mit dem Daten einlesen gelöst hat. Ich sitze nämlich gerade vor dem selben Problem mit dem selben Board. Nur habe ich Infrarotsensoren an der Karte angeschlossen. Jedes mal, wenn ich die Daten einlese bekomme ich den Wert
-
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
RFM12 Modul Probleme Komunikation mit Modul
ich mangels wissen leider nicht den HardwareSPI. wenn das einfach zu erledigen ist (besonders das Einlesen bin ich für Ratschläge gerne offen.) // Sendet daten an das Modul unsigned short rf12_trans(unsigned short wert) { unsigned short werti=0; unsigned char i; cbi(RF_PORT, CS); for (i=0; i<16; i++) { if (wert&32768) sbi(RF_PORT, SDI); else cbi(RF_PORT, SDI); werti<<=1; if (RF_PIN&(1<<SDO)) werti|=1; sbi(RF_PORT, SCK); wert<<=1; _delay_us(0.3); cbi(RF_PORT, SCK); } sbi(
-
Thread
Atmega 32 RC5
dort etwas konfus vor. Aus dem Bauch raus würde ich sowas erwarten (ungestestet!) [C] #include <avr/io.h> #include <avr/interrupt.h> #include "LCD.h" #define F_CPU 1000000 #define NUM_RC5_BITS 14 volatile unsigned char code_B[NUM_RC5_BITS]; volatile unsigned char wartezeit; unsigned char
habe ich wartezeit mal auf 6 gesetzt ( bedeutet ja um 127µs weiter in der mitte). Die Abfrage zum einlesen des Port Status wird nun erst nach 14 Timer Overflows ausgelöst. Nun ist mir aufgefallen das sich im Code Bereich die beiden letzten beiden Bits (Bit 13 und Bit14), egal welche Taste gedrückt wird
-
Thread
GPS RGM-2000 richtig an den PC anschließen
wrote: > @ alex > Nein, schließe deinen RX-Pin des Atmegas nicht einfach an den TX-Pin des > ComPorts an! Lies dir mal die Frage von alex genau durch. Er hat nirgends etwas von einem Com Port geschrieben... @alex Ja, das geht. Die 3-3,3V sind etwas an der Grenze, werden aber im Normfall von einem AVR als high erkannt. TX von dem Modul kannst du also problemlos direkt an den AVR anschließen. Da nirgends spezifiziert ist, ob RX 5V tolerant ist, schadet ein Widerstand von ein paar 100 Ohm als einfacher
-
Thread
Anfänger sucht Hilfe
. Meint: Beschreibe, was du hast, was du willst und was du brauchst. Bsp: Ich habe hier ein AVR MC Board von xxx. Ich weiß mittlerweile, wie xxx und yyy geht. Ich möchte nun einen xyz-chip an den MC anschließen. mir ist nicht klar, wie (welchen) Port-Pin ich zweckmäßigerweise nutzen soll und wie
Der Tristate-Zustand ([[Ausgangsstufen Logik-ICs]]) ist dazu da, um die Programmierschaltung am AVR bei Nichtbenutzung unsichtbar zu machen (http://www.mikrocontroller.net/articles/AVR_In_System_Programmer#ISP-Pins_am_AVR_auch_f.C3.BCr_andere_Zwecke_nutzen). > Und warum braucht man den Widerstand
-
Thread
suche speziellen Microcontroller
hat. Also etwa so (Pseudocode, extra ausführlich): Zustand = PortX.Bit0 // Aktuellen Zustand einlesen if (AlterZustand == Zustand) { // Signal unverändert } if (Zustand > AlterZustand) { // Steigende Flanke } if (Zustand < AlterZustand) { //
Welchen Compiler nimmst du denn? AVR STudio oder Codevision würde ich vorschlagen. Zum Programmieren eine Tiny oder AVR (z.B. ATMega8, it ausreichend I/O PIN'S) nimmt man am besten PONYPROG und eine ISP Adapter, üblicher weise einen
-
Thread
Zeiger + by reference + Array + Structur??
Naja Komplexität unterschätzt triffts schon. µC programmierung einlesen, sämtliche Datenblätter lesen UART,SPI,SD-Karten programmierung und FAT32 implementierung einlesen und sämtliche RFCs für sonstiges lesen hats schon in sich. Natürlich kann ich noch andere Programmiersprachen
schon aufgefallen, dass es da meistens irgendetwas hat. Aber was mir auch aufgefallen ist ist, dass AVR Studio manchmal 0 Warnings angibt und wenn ich dann irgendetwas am Code ändere (z.b. ; lösche und wieder hinzugebe) dann 2 Warnings z.b. auftauchen... Wenn wir gleich dabei sind, vielleicht kannst
-
Thread
Was sind das für Bauteile?
Peter K. wrote: > Ja und beim Sensor geht noch eine Leitung rauf zu +V Das ist ein Pull-Up um den Port auf einen definierten Pegel (5V ueber Pull-Widerstand) zu heben. Einfach ueber den Widerstand an 5V (VCC) gehen. Der Temp-Sensor klingelt dann da, in dem er den Port auf Low zieht (Port PD1 am uC
Brauchst also ein Programm, mit dem Du das PWM-Tastverhaeltnis einstellen und das PWM-Signal an einen Port ausgeben kannst. Dort dann die LED mit Vorwiderstand gegen GND ran. Dann zwei Taster einlesen, einen als inkrement, einen als dekrement verwenden.
-
Thread
Problem AVRDoper mit Avrdude verwenden
Anscheinend wird er ja angesprochen. Wenn ich den Doper entferne dann geht gar nichts weil er den Port nicht öffnen kann. Bei der letzteren Befehlszeile wird mir folgendes ausgegeben: C:\WinAVR\bin>avrdude.exe -c stk500v2 -p m32 -P avrdoper -v avrdude.exe: Version 5.6cvs, compiled on Nov 10
-2005 Brian Dean, http://www.bdmicro.com/ System wide configuration file is "C:\WinAVR\bin\avrdude.conf" Using Port : avrdoper Using Programmer : stk500v2 AVR Part : ATMEGA32
-
Thread
Cypress (Anchor) AN2135 Treiberproblem Win2k/XP
und daß man nicht mehr ohne weiteres auf Hardware zugreifen kann. Kann es sein, daß man so ein IO-Port-Öffner-Programm benutzen muß (wie z.B. das, was man für TwinAVR zum freischalten des LPT-Ports unter Win2k braucht)? Irgendwie schwebt mir sowas als Ursache vor..
ein STM (Scanning Tunneling Microscope) gesteuert. Das XY-Rastern übernahmen 2 x 12Bit DACs, das Einlesen des Tunnelstroms und die Regelung ein 16Bit ADC bzw. DAC. Damit ist es gelungen, atomare Auflösung auf Graphit zu bekommen (ist ein Standard-Test, aber für so einen kleinen Käfer wie den AN2135 gar
-
Thread
Ein an die SPI - Schnittstelle angeschlossener ADC macht Probleme
die SPI Schnittstelle anspreche und den ADC Wert abfrage sieht wie folt aus: [c] #define ADC_PORT PORTB #define ADC_PIN PINB #define ADC_DDR DDRB #define ADC_CS SBIT( ADC_PORT, 0) #define ADC_CS_DDR SBIT( ADC_DDR, 0) #define ADC_CLK SBIT( ADC_PORT, 7) #define ADC_CLK_DDR
Diagramme reinzieht sieht man das zwei Dummy Clocks am Anfang nötig sind. Erst dann kommen die Daten. Einlesen der Daten auf steigender Flanke. Du brauchst also min. 10 Clock Zyklen um den ADC zu lesen.
-
Thread
Suche nach Controller, was haltet ihr von ATSAM9263
sehr genau überlegen. Auf ARM9 und AVR32 ist Linux portiert und die Peripherie ziemlich komplett ansprechbar. Es gibt auch Foren und andere Bastler. Bei dem '9261 kann man nicht vom seriellen Flash starten. Und zwar deshalb, weil das
ganz wieso so ne Card nun so wichtig ist bzw. der NOR-Flash. Mal so nebenbei, nutzt du den LCD Port für ne Grafische Anzeige? Wie lange brauch der denn für ein Bild in 800*600?
-
Thread
LCD 1x16 HD44870 kompatibel will einfach nicht mit der library von Peter Fleury funktionieren
#define LCD_DATA2_PORT LCD_PORT /**< port for 4bit data bit 2 */ #define LCD_DATA3_PORT LCD_PORT /**< port for 4bit data bit 3 */ #define LCD_RS_PORT LCD_PORT /**< port for RS line */ #define
musste ich mehr anpassen. Hier nun also der komplette Code: [c] #include <inttypes.h> #include <avr/io.h> #include <avr/pgmspace.h> #include "lcd.h" // constants/macros #define DDR(x) (*(&x - 1)) /* address of data direction register of port x */ #define PIN(x) (*(&x - 2)) /* address
-
Thread
Vieleeeele Eingänge, viele Ausgänge.
für aktuellen Ausgangszustand, 2 bit für angeforderten Ausgangszustand, 2 Ausgangs-LED, 2 Treiber-Ports, 3 bit minimalst-Timer zur Treiberpulslängenbegrenzung, ggf. noch zwei Flags für blockiert durch verriegelung und blinkmodus. Welche Variante ist Vorteilhafter? Es jeweils in einer Variablen abzuhandeln
funktioniert :P Einfach (wie schon gesagt) jede Zeile nacheinander abscannen und die Eingänge einlesen. EDIT: Ich glaube nicht, dass die Schieberegister Variante zeitlich irgendeinen Vorteil gegenüber der Scan Variante hat. Eher andersherum würde ich jetzt behaupten.
-
Thread
8-Kanal IR-Fernbedienungs-Bausatz IRK8
hin einen Port zu triggern ist eigentlich ein Kinderspiel, mit dem festen Willen und dem Ziel vor Augen sollte man das mit ein paar Stunden einlesen hinbekommen. Bedenke aber, dass du einen Programmieradapter
http://www.hanneslux.de/avr/pollin_ir8/index.html ...
-
Thread
Taschenrechner Oszilloskop
Du kannst mit nem ASM-Programm den Link-port des Taschenrechners zu nem ttl uart umfunktionieren. Nen Prozessor liest den adc aus und schiebt die Daten per uart in den Taschenrechener.
fast alles: http://www.ticalc.org/pub/text/calcinfo/tixx_guide.zip Und dann musst du nur noch einen AVR programmieren, der die Daten aus dem AD-Wandler einliest und zum TI rüberschiebt.
-
Thread
Rotary Encoder
> beide normal als output gesetzt... Vielleicht doch als Eingang und beim PortB sind die Pullups aktiv? Der PortE hat keine Pullups.
einlesen: http://www.mikrocontroller.net/topic/112603#new Peter
-
Thread
Spannungsmessung mit AVR
Widerstand vor dem Pin sein sollte. Wenn ich also "recht schnelle" Signale mit einem Spannungsteiler in den AVR einlesen möchte sollte also noch ein Spannungsfolger verwendet werden, der einen geringen Ausgangswiderstand hat? Steffen
Steffen wrote: > Wenn ich also "recht schnelle" > Signale mit einem Spannungsteiler in den AVR einlesen möchte sollte also > noch ein Spannungsfolger verwendet werden, der einen geringen > Ausgangswiderstand hat? Das ist dann sinnvoll, wenn das zu messende Signal sehr hochohmig ist.
-
Thread
Programmablaufplan Drehgeber
wäre mir am liebsten. Mir hilft es aber auch weiter, wenn es einen PAP gibt, der allgemein das Einlesen des Graycodes mit Interrupt aufzeigt. Hier noch einmal der Code von Peter, damit ihr nicht solange suchen müüss Danke Udo [c] #include <avr\io.h> #include <avr\interrupt.h> #define
, zum Testen habe ich gerade einen manuellen alps Drehgeber angeschlossen, um das Prizip des Einlesens zu verstehen. Danach werde ich die Encoder Scheibe mit der 2-Kanal Lichtschranke anschließen. Also die Hardware optischer Encoder auf der Motorwelle wird zum Einsatz kommen. Gruß Udo
-
Thread
Schleifenabruch bei Tasterdruck
[c] #include <avr/io.h> #include <avr/interrupt.h> #include <stdio.h> #include "em4095.h" #define KEYS 2 #define BAUD 9600UL /*EEPROM schreiben*/ void EEPROM_write(unsigned int uiAddress, unsigned
{ tagout(tag); if (cmp_tag(key,tag)) PORTB=1<<PB6; //Led an Port PB6 aus und Led an PB7 an else PORTB=1<<PB7; //Led an Port PB7 aus und Led an PB6 an } else { PORTB=1<<PB7;} //Led an Port PB7
-
Thread
74HC4067 Nachfolgeschaltung?!
dann z.B. 256 Ausgänge und 256 Eingänge kein Problem. http://www.mikrocontroller.net/articles/AVR-Tutorial:_Schieberegister Peter
verdwenden, da ich ja jeden Eingang direkt ansprechen kann, ohne dass > ich ein ganzes Bitmuster einlesen muss, damit ich weiß welchen Pegel ein > einziger Eingang hat. Ist aber aufwendiger. Das SPI arbeitet bidirektional, d.h. wenn man 4 Bytes rausschiebt, kann man gleichzeitg 4 Bytes einlesen.
-
Thread
Zugriff auf eine "volatlie" Variable aus zwei verschiedenen Interrupts möglich?
geschrieben, das auf der Drehencoder-Routine von Deter Dannegger beruht (hier aus der Codesammlung). Das einlesen der 4 Drehencoder die ich an Port A angeschlossen habe, funktioniert auch prima. Jetzt zu meinem Problem: Das einlesen der Drehencoder erfolgt über den Timer-Overflow-Interrupt mit Timer0 (ca.
lange dauert, ist wurscht, ob er sich selber blockiert oder nen anderen. Daher lange Sachen beim AVR möglichst im Main machen. Peter
-
Thread
ADC bei Tinity 15
ADMUX, r16 ; interne Spannungsquelle 2,56 V und PB2 als eingang ; --- PORT --- ; ldi r16,0x03 out DDRB,r16 ; PORT 0 und 1 als Ausgang setzen sei ; Aktiviere die out ADCSR, r16 ; Start Messung ldi r16,0x68 out ADCSR, r16 ; Start
Wenn bei Dir ein Interrupt auftritt, gibt's einen Systemabsturz. Fang am besten mal mit dem [[AVR-Tutorial]] an und zwar von Anfang an...
-
Thread
PIN als Ein- und Ausgang nutzen.
Ich habe das Problem das ich bei einer fertigen Platine nun doch eine kleine Eingabe beim Start einlesen muß. Alle Ports am ATMEL sind belegt. Ich habe allerdings 2 Ports wo LED's dran sind und da suche ich jetzt nach einer Lösung das ich beim anlegen der Betriebsspannung H/L einlesen kann, danach
kein Problem, ca. 3,3k an TxD und dann eben L oder H dran. Vor dem UART initialisieren den Pin einlesen und gut. Danach setzt sowieso der UART den Portpin. Die 3,3k zusätzliche Last steckt der AVR TX weg, wenn Du nicht gerade am obersten Ende mit der Bauddrate bist. Hochohmiger geht sicher auch, im
-
Thread
ADC simulieren
Hallo, ich fange gerade an, mich mit dem AVR Atmel32 zu beschäftigen und möchte mit dem ADC eine Spannung einlesen und später auswerten. Wo genau kann ich denn in AVR Studio eine (Analog)-Spannung (an Port A) einstellen oder eingeben um die Funktion
AVR Studio kann eine ADC-Wandlung leider nicht simulieren.
-
Thread
Worin liegt der Unterschied "UCSRC"
kurz noch als ergänzung: controller ist ein atmega32 compiler WinAVR-20071221
Zuweisungsarten, welche als immediate behandelt werden solange es statisch bleibt, was aber beim einlesen mittels DIP-Switch hinfällig wird.
-
Thread
Moodlight Sourcecode hilfe
, so habe ich auch schon einen Verdacht. Das könnte wirklich an der Hardware liegen. Wenn ich den Port ändere und weg von meiner High-Power LED mit Treiber IC gehe kann ich immer schön die PWM messen. Gleich mal ein paar normale LEDs an den Port klemmen und gucken was passiert. Wobei nen Hardwarefehler
der LookUp ein bisschen vermitteln. Das könnte das ganze ein wenig "verschmieren". --- An PortA kann man auch keine Hardware-PWM betreiben :( Das wären PortE+B, dann hättest Du mit der Hardw.PWM Rechenzeit ohne ende. --- Für Farbe hätte ich vielleicht ein enum genommen. Aber eigentlich
-
Thread
Brauche Hilfe=)
System.Drawing; using System.Linq; using System.Text; using System.Windows.Forms; using System.IO.Ports; using System.Threading; namespace Serialport_test { public partial class Form1 : Form { SerialPort com; public Form1() { InitializeComponent
ich mache da was mit dn Bit nicht richtig oder so. C# Serialportinitialisierung: [c] SerialPort com = new SerialPort("com3", 9600, Parity.None, 8, Stopbit.Two); [/c] MfG Atmega 168
-
Thread
s: Bestückungsautomat
auch etwas anderes sein. Die Ansteuerung der vier Achsen würde dann interruptgesteuert über einen Port (jeweils Takt/Richtung) erfolgen. Die weiteren Ports wären dann für Endschalter, Feed-Befehle etc. gedacht. Der AVR würde dann diese Ports "ganz dumm" an den PC weiterleiten bzw. umgekehrt (dabei muss
>1.) PC sagt dem AVR: "Fahre mit Bauteil zur vorläufigen Position" >2.) Bis der AVR sich mit "Bin feddich" meldet, werkelt der PC am Bild >3.) PC sagt AVR: "Korrigiere Winkel und Position" >4.) AVR sagt: "Habbsch gemacht
-
Thread
Mega8 läuft mit 2MHz wie er soll, mit 8MHz nicht mehr.
>Wenn ich den AVR aber trotzdem in einer solchen Umgebung (PC-Netzteil) >betreiben möchte, wie stabilisiere ich das am geschicktesten? >Reichen da Abblockkondensatoren, oder doch eher Mit Z-Diode mit/ohne >Transistor
dummy wrote: >>Wenn ich den AVR aber trotzdem in einer solchen Umgebung (PC-Netzteil) >>betreiben möchte, wie stabilisiere ich das am geschicktesten? > >>Reichen da Abblockkondensatoren, oder doch eher Mit Z-Diode mit/ohne >>
-
Thread
Grundsatzfrage SD-Karte >> AVR
Hallo, ist es irgendwie technische möglich, eine SD-Karte die an einem AVR hängt über den ISP Port auszulesen?
>ist es irgendwie technische möglich, eine SD-Karte die an einem AVR >hängt über den ISP Port auszulesen? Ja klar. AVR in Resetzustand legen damit das lesen von der Karte nicht gestört wird. Eigenen ISP Prommer bauen und ein Programm dafür schreiben um die SD Karte
-
Thread
Avrs verbinden
Hallo, ich habe folgendes Problem: Ich habe zwei Avr´s (atmega32/atmega16) und gebe auf PA0/PA1 des atmega32 ein Signal aus, welches ich beim atmega16 auf PC0/PC1 einlesen möchte. Dazu habe ich die Ports beim atmega32 auf Ausgang gestellt und beim atmega16
kann mit dem atmega16 jedoch das Signal nicht vernünftig erfassen. Liegt für eine längere Zeit ein Port vom atmega32 auf 5V, so bekomme ich trotzdem vom atmega16 gesagt, dass 0V am Port anliegt! Messe ich im angeschlossenen Zustand die Spannung mit einem Multimeter, so kann ich eine Spannung von gerade
-
Thread
Fernbedienungs Test
Im Prinzip ja. Aber der M16 hat einige Ports mehr als der M8.
unter Visual Basic schreiben muss? Kann ich das über RS232 machen oder kann das auch über den USB Port arbeiten? Denke mal es ist einfacher über den RS232 Port zu gehe?!
-
Thread
Bytes über Serielle Schnittstelle senden/empfangen
schicken ich einen String mir 3 mal einem Byte. Die C# Routine beim Empfangen lautet: serialPort1.Open(); serialPort1.Read(b, 0, 3); serialPort1.Close(); b ist ein ByteArray der Größe 3. byte[] Eigentlich sollte nun das erste Byte in b[0], das zweite in b[1] und das dritte an b[2]
, funktioniert es. Hier der Code in C# : byte[] b = new byte[3]; serialPort1.Open(); serialPort1.Write(b,0,3); serialPort1.Close(); Es werden hierbei die drei Bytes im Byte-Array b[3] in den Puffer geladen. Der MC holt sich die Daten dann seriell
-
Thread
CMOS Sensor MT9P031
man kann 1MB an Geschwindigkeit bekommen (über den Datendurchsatz hab ich mir keine Gedanken beim AVR gemacht). Daher könnte zeilenbasiert fehlschlagen. Schöner wär es dem AVR alle Daten vorzukauen und ihm diese parallel zu füttern. Den AVR würde ich auch nur nehmen um eine SD-Karte anzusprechen
die Applikation und auf dem anderen Kern Linux laufen zu lassen. Als Eingangsport kommt nur der PPI-Port in Betracht, die Einlese wird hier dann auch zeilenweise organisiert, um die schnellen DMA-Kanäle im L1 nutzen zu können. Da der PPI ja auch nicht die 96MHz kann, benutzen wird vor dem PPI-Port häufig
-
Thread
DCF-Uhr, Sonnenstand, TWI-Port, Alarmfunktion für m8 in C
geschrieben der > eigentlich nicht recht hier ins Forum passt. Nicht ohne Grund. Wer mal mit einem AVR und Bascom oder AVR-gcc oder Assembler gearbeitet hat, der wird eine C-Control und sein/ihr Basic nicht vermissen. Aus Unkenntnis habe ich leider vor einigen Jahren auch diesen Umweg gemacht.
auf 64 anstelle von 70. Damit sollte dann auch ein real existierender Port am Controller geschaltet werden. mfg Michael S.
-
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
ASM: Encoder auswerten
pre] drehgeber: ;wertet Drehgeberbewegungen aus in wl,dgpin ;Drehgeber-Port einlesen andi wl,dgneumsk ;nur die benutzten Bits werten lsl dgalt ;altes Drehgeber-Bitmuster lsl dgalt ;nach oben schieben or dgalt,wl
Drehen sich ändernde Werte. Beides kannst du auswerten, um eine Variable und damit einen Ausgang am AVR o.ä. zu verändern. Was willst du denn mit dem Drehgeber beeinflussen?
-
Thread
myAVR-LCD-Fragen
die "Kleinigkeit", daß er ein Bit auf Eingang setzt beim Busy lesen, das Display aber seinen ganzen Port auf Ausgang, stört ihn ja auch nicht. Vielleicht stört es aber irgendwann den AVR- oder Displayport wenn die restlichen Pins gegeneinander kämpfen... Naja, Datenblatt lesen will eben auch gelernt
Kleinigkeit", daß er ein Bit auf Eingang setzt beim Busy > lesen, das Display aber seinen ganzen Port auf Ausgang, stört ihn ja Naja, die "Kleinigkeit" dass du nichtmal weisst wie ein myAVR-Board aufgebaut ist ODER gar Quelltext lesen kannst ... das LCD selbst bzw. dessen Datenbits/-Pins haben
-
Thread
Struct; Was ist eleganter?
und dem 2*50ms Warten ersetzen. Z.b. durch die bewährten Routinen aus der Artikelsammlung mit dem Einlesen der Tasten im Timer-Interrupt. Ich würde bei 8 Tasten alle auf einen Port legen und den komplett nur einmal einlesen. Das Rauspfriemeln der gedrückten Taste zum Auswerten dann mit Bitmasken. Damit
sich gegenseitig erheblich in Quäre kommen... [c] uint8_t delay_buttonpush(volatile uint8_t *port, uint8_t pin) { if ( ! (*port & (1 << pin)) ) { _delay_ms(50); _delay_ms(50); if ( *port & (1 << pin) ) { _delay_ms(50); _delay_ms(50