-
Thread
mC arbeitet nicht
eine Spannung von 5,11 V. Ich werde es mit noch dem Port A testen. Wenn er dann immer noch nicht geht muss ich wohl annehmen dass er kaputt ist :( Oder hat jemand eine Idee woran es liegen kann. Ich nehme an das der Programmer ordnungsgemäß schreibt. Ich kann auch aus dem uC die Hex file lesen und
"m8515def.inc" ; ATmega8515 ldi wr,0x0F out DDRC,wr ldi wr,0x0F out PORTC,wr main: rjmp main Viele Dank daniel daniel
-
Thread
Mikrocontroller mit 5V
sein, genauso wie die 3.3V-Zeit – diese Standards werden die meisten User hier überleben. Im Kern geht es bei moderneren µC oder FPGAs oft runter bis auf ca. 1 bis 1,2V, die Anbindung wird intern und quasi unsichtbar für den User über Levelshifter vollführt – beim STM32 kann man diese Core-Spannung auch
. schrieb im Beitrag #7804724: > Moderne AVR haben hier solch Beschränkungen nicht. Leider nur PORTC, > d.h. höchstens 8 Pins, bei einigen nur je 4 Pins. Ähem... Das ist die Zahl der Pins, die du mit einer von Vdd abweichenden Spannung betreiben kannst. Dir bleibt aber immer noch die Wahl
-
Thread
AtMega162 Portprobleme!
An der einen Stelle hat's geklappt an der anderen nicht . Wenn ich DDRC = 0b11111111; PORTC = 0b00000000; deklariere soll mit PORTC|=(1<<6); eine LED angehen . Allerdings geht PC1 und nicht PC 6 auf high ?! . Wieso ?! :( .
-
Thread
Hyperterminal lääst LED's springen
Guten Tag, ich möchte gern vom HyperTerminal aus meine LED's am PORTC durch Eingaben wie "0b11101100" ansteuern. Jedoch werden die eingegebenen Muster nicht korrekt übertragen und schon allein durch Tippen der Leertaste springen die LED's wie wild herum. Das man solche Sachen irgendwie Filtern muss ist mir bewusst, nur worum es hier eigentlich geht ist, dass die Muster nich korrekt wiedergegeben werden. [c] #include <avr/io.h> #include <stdlib.h> #define F_CPU 16000000UL // Systemtakt in Hz - Definition als unsigned long beachten #define
-
Thread
UART ARRAY von PC an PIC
unsigned char Byte2; unsigned char Byte3; unsigned char Byte4; PORTA=0; PORTB=0; PORTC=0; PORTD=0; PORTE=0; //ANFANG if(Byte1==0x10) //Digitale Ausgangskarte
Dann ist das schonmal ganz gut, unabhängig davon, wie gut der Programmierstil ist. Ich dachte, es geht jetzt erstmal nur noch darum die 4 Bytes zu empfangen. Hast Du meinen Code getestet? Läuft er? Ich bin hier kein PIC-Zeug, an dem ich meinen Code, den ich hier poste, testen könnte.
-
Thread
atmega128 receive uart0 funktioniert nicht
is interrupt controlled sei(); char Command [LENGTH+1]; for(;;) { PORTC = 0xAA; uart0_gets( Command, LENGTH ); uart0_puts( Command ); uart0_puts( "\r\n" ); if(strcmp(Command, "start") == 0) { PORTC = 0xFA;
start"); _delay_ms(10); } else if(strcmp(Command, "exit") == 0) { PORTC = 0xBA; for(int i=0; i<19; i++) uart1_puts("exit"); _delay_ms(10); } } return 0; }[/c]
-
Thread
CAN auslesen AT90CAN128
can_received_temperatur can_received_gang can_received_messwerte Oder so ähnlich. :-) Oder ganz weglassen geht auch. :-)
man wackeln lassen mit dem PIN-Register: PINC = (1<<PC0); // Zustand von LED1 wechseln Das geht nicht mit allen AVR, aber beim 90CAN funktioniert das so. [c] ISR (CANIT_vect) { uint8_t canpage; PINC = (1<<PC0); // Zustand von LED1 wechseln [/c]
-
Thread
1-Wire-Bus-Projekt: DS1820 / DS18S20 / DS2450 / DS2408 / unter C und 8051
Hallo zusammen ! Es geht weiter mit unserem Projekt: im Anhang findet ihr die Version V1.1 mit den neuen Kapiteln 4 und 6, d.h. nun wird der DS18S20er ausführlich beschrieben und die komplette DS18S20er-API ist enthalten
timer2==10){timer2=0;led_on;_delay_ms(25);led_off;}//Bereitschaftsanzeige //if(gbi(PINC,3))sbi(PORTC,4);else cbi(PORTC,4); //_____________________________________________________ //_____________________________________________________ if (owx_signal) {timer2=0;dat=sub_owx_empfangen();} if(dat!
-
Thread
programm dokumentieren Gesperrt
// endlos Schleife { if(debounce(&PIND,PD0)) // das verstehe ich auch nicht PORTC =~ PORTC; // invertiert den Wert auf PORTC } }
verschiedene Algorithmen aufzählen, eventuell kurz beschreiben und den eigenen genauer erklären. Weiter geht es dann mit der Beschreibung der Umsetzung im eigenen Programm (Initialisierung, Programmablauf) und der Quellenangabe, woher das stammt ;-) Da kannst du schon mal einiges schreiben...
-
Thread
Verarbeitung/Weitergabe dreier gewandelter Messwerte
// 0xd //Beschreiben des Senderegisters mit EINER Zahl / EINEM Buchstaben /* PORTC=0x00; //PWM, c zwischen 0 und 255 einstellbar for (i=0;i<c;i++); PORTC=0xFF; for (i=0;i<255-c;i++); */ } } [/c]
Beschreiben des Senderegisters mit EINER > Zahl / EINEM Buchstaben Ditto > > > /* > PORTC=0x00; //PWM, c zwischen 0 und 255 einstellbar > for (i=0;i<c;i++); > > PORTC=0xFF; > for (i=0;i<255-c;i++); > */ > > } > } > > > [/c]
-
Thread
8bit-Timer Mega8
// 0 0 0 0 0 0 0 0 DDRB=0x3F; // 0 0 1 1 1 1 1 1 PORTC=0x0E; // 0 0 0 0 1 1 1 0 DDRC=0x30; // 0 0 1 1 0 0 0 0 PORTD=0x03; // 0 0 0 0 0 0 1 1 DDRD=0xFE; // 1 1 1 1 1
Sachen macht man nicht (mehr) mit einem "manuellen" Timer-Nachladen, sondern mit dem CTC-Mode. Der geht bei Mega8 allerdings nur bei Timer1 (16Bit) und Timer2 (8Bit). >zeit = zeit/1000; wirr... Long sind doch 32Bit-Integer, oder? (So riesige Zahlen benutze ich nie...) Wenn man eine Zahl z.B.
-
Thread
HILFE gesucht - ATmega16
Glück. Mit dem uC kannst du das schaffen. Mach mal irgendwas, und schreib dann, was noch nicht geht. Die ganze Arbeit nimmt dir hier auch keiner ab. BTW: Pete hats da mit seinen 72 Flipflops wesentlich schwerer :-o
starten TIMSK = 0x01; TCNT0 = 0xe9; sei(); // Beginn des Interrupts PORTC = 0xff; // Initialisierung von Port C while(1) // Endlosschleife { if( counter >= counter_max ) { counter = 0; ledcnt++; PORTC = ~( 1 << ( ledcnt &
-
Thread
Zeitschalter
ldi temp, RAMEND out SP, temp; set stack pointer ldi temp, 0xFF out DDRC, temp ; PORTC configured for output ldi temp, 0xFF out PORTC, leds ; LEDs ausschalten ldi temp, 1<<TOIE0 ; 0000 0010 out TIMSK, temp ; timer 0 interrupt ein ldi temp, start out TCNT0, temp ; Startwert
-------------------------- timer0: dec counter brne restart ldi counter, loops com leds out PORTC, leds restart: ldi temp, start out TCNT0, temp ; Timer fängt wieder von vorn an reti
-
Thread
Wer sieht den Fehler im Code
= uart_getc(); // hier etwas mit c machen z.B. auf PORT ausgeben //DDRC = 0xFF; // PORTC Ausgang //PORTC = c; if (buffer == test) { PORTB = 0b00001110; _delay_ms(100); } else { PORTB = 0b00000100; _delay_ms(
Treiber im PC was nicht. Wenn schon, dann nachverfolgen, an welchem µC Pin diese blinkende Leitung geht. Es muss der Rx Pin vom µC sein.
-
Thread
Programm funktioniert.aber wieso?
//4tes bit invertieren auf 0 PORTA=werth; //Ausgabe an PortA = Highbyte PORTC=wertl; //Ausgabe an PortC = lowbyte // PORTA=counter; // PORTC=0; //********************************************ADWANDLER AUSGELESEN RESULTAT AN PINS DES MIKROK**************
schrieb im Beitrag #3271114: > _delay_ms(0.005); //CONVERTIERUNG max 5 mikro sekunden Das geht?
-
Thread
schrittmotor Richtung umdrehen
int i = 0; i<100; i++) //entspricht 1 Umdrehung 200 Schritte { PORTD = 0xFB; // Led PORTC = mDirection | 0xFF;//Pins Motor _delay_ms(1); // dirty "debounce" PORTC = mDirection | 0xFE; //Pins Motor } _delay_ms(50); } [/c]
Danke an alle ich bin kein profis in C aber mit den code geht auch nicht wo ist dann meinem Fehler? [c] if((PINC & (1 << 2)) //Link Drehung Stepper_Tack = 0x02; else if((PINC & (0 << 2)) //Recht Drehung [/c] gruß
-
Thread
gcc vs. cvavr mit PORTA.1 = (bool)
>"PORTAbits.RA6=1" ist auch nur etwas kürzer als "PORTC |= (1<<PC6);" "PORTC |= (1<<PC6);" ist dafür C-konform...
STK500-Besitzer wrote: > "PORTC |= (1<<PC6);" ist dafür C-konform... "PORTAbits.RA6=1" ist es auch.
-
Thread
Atmega48 multiplexing
// PortB alles als Ausgang DDRC |= (1 << DDC0) | (1 << DDC1) | (1 << DDC2); // PortC 0..2 als Ausgang PORTC |= (1 << PC0) | (1 << PC1) | (1 << PC2); // 0..2 High = Digits aus OCR1A = (uint16_t)(F_CPU/1024.0*0.005); // Vergleichwert für 0,005s laden: Takt= 8MHz/1024
zahl_ausgeben (i); delay_ms (100); } } return 0; } ISR (TIMER1_COMPA_vect) { PORTC |= (1 << PC0) | (1 << PC1) | (1 << PC2); // 0..2 High = Digits aus switch (position) // Aktuelle Stelle ausgeben { case 0 : digit (hunderter, PC0); break; case 1 : digit (zehner
-
Thread
Externes serielles EEPROM
DDRB = 0xFF; PORTB = 0xFF; DDRC = 0x00; PORTC = 0x00; DDRC = 0xFF; PORTC = 0x00; spi_init(); spi_eeprom_write(0,1); unsigned int data = spi_eeprom_read(0); for(;;)
zurück. Du kannst auch nur 4 oder 8 Bytes holen, musst aber auch hier auf die Seitengrenzen achten (es geht also nicht von Adresse 124, 8 Bytes zu lesen, da hier wieder ein Seitenwechsel statt findet). Sven
-
Thread
skip if bit in I/O Reg is cleared/set
ich nun PortC Pin7 auf ein Low-Signal ab? while ( (~PINC & (1<<PINC7)) ) Siehe [[Bitmanipulation]] MfG Falk
Falk Brunner wrote: > while ( (~PINC & (1<<PINC7)) ) Geht auch: while ( !(PINC & (1<<PINC7)) )
-
Thread
Daten via I²C vom Master zum Slave und zurück
funktionieren. Der Master findet den Slave, und das Senden eines einzelnen Bytes in je eine Richtung geht ebenfalls. Nur beim Versuch 2Bytes Master->Slave, 1Byte Slave <- Master geht es schief. Beim Slave kommen meist für das zweite Byte nur noch komische Werte an. Beispiel Byte1=50, Byte2=88, dann kommt
######################### ' ### I²C Konfiguration ### ' ######################### Config Scl = Portc.5 'Konfiguration der I²C Verbindung Config Sda = Portc.4 I2cinit Config Twi = 100000 ' ######################### ' ### LCD Konfiguration ### ' #
-
Thread
Analog Digital Converter kleines Problem (PIC)
Hallo! Habe ich schon versucht doch es geht leider immer noch nicht! mfg ANTON
Hallo Anton, ich versteh Dich nicht! Du hast einen funktionierenden Code erhalten. Wenn PORTC zur Ausgabe verwendet werden soll, tauscht Du eben PORTB gegen PORTC im Code. Es ist doch egal ob man die LEDs am Ausgang als Balkenanzeige oder "Einzel-LEDs" oder sonst wie bezeichnet. Mehr als
-
Thread
Programmierung Attiny 13
keine Datei AVRstudio.exe? Ich würde mir einfach die neueste Version von der ATMEL-Seite downloaden. Geht allerdings nur mit Registrierung.
Karl Heinz meintest du das so (siehe Bild oben)? Schwarz und weiß dann an die Enden und rot geht (unten) an Ain.
-
Thread
Arduino ATMega328 Breadboard Pin Definitionen
code here, to run repeatedly: delay(100); //Serial.println("An"); digitalWrite(PC1,1); //PORTC |= 0x02; delay(100); //Serial.println("Aus"); digitalWrite(PC1,0); //PORTC &= ~0x02; } Pin 24 wackelt nur, wenn ich die im obigen Beispiel auskommentierten Zeilen aktiviere. Es
A hat mir leo ja weitergeholfen, aber bei Port D muss ich wieder auf die PDs gehen: Das hier geht: pinMode(PD6, OUTPUT); Das geht nicht: pinMode(D6, OUTPUT); Compiler Ausgabe: 'D6' was not declared in this scope Warum kennt er A1..A5, aber nicht D6? Wo stehen die Pin-Definitionen und
-
Thread
drehgeber portB wird nie gleich 1
Stefan Ernst schrieb: > PS: Erwarte aber nicht, dass der Code als Ganzes dann geht. Da sind noch > andere Probleme in der grundsätzlichen Logik. zb hier: [C] if ((PINB&(1<<PB0))==0) //Wenn A auf 0 geht (R oder L drehen) [/C] das testet nicht, ob A von 1 auf 0 gewechselt
> Was passiert, wenn du gaaaaaanz laaaangsaaam drehst? es geht aber wenn bei schneller Drehung nicht
-
Thread
High-Pin nur 0.6V
Hallo, ich habe ein Atmega16. Der Code sieht so aus: DDRC = 0xFF; PORTC = 0b11111111; Ich setze also alle Pins von PortC als Ausgänge und gebe eine 1 (5V) aus. Aber ich messe mit einem Voltmeter nur ca. 0.6V an den Ausgängen! Warum? Danke!
Sinne von 'du sperrst dich aus', kann da nichts. Entweder hat der Spuk dann ein Ende, oder er geht weiter.
-
Thread
Assembler, Counter, 7Segment
if( PINB & ( 1 << T_RESET ) ) { team1Points = 0; team2Points = 0; } PORTC = SegCode[ team1Points ]; PORTD = SegCode[ team2Points ]; } } [/C] kommt dir als PHP Programmierer von der Syntax her bekannt vor?
direkt das thema atmega asm behandeln > ? Lass das Leerzeichen vor dem Fragezeichen weg. Beim Punkt gehts ja auch. So ein unnötiges Space macht den Text /nicht/ besser lesbar. Dafür gibt es sogar einen eigenen Begriff: Plenken
-
Thread
Schon der 5. ATMega8 zerstört
daran, ich weiß jedoch nicht, wie vertrauenswürdig es ist. Es ist schon alt und die Strommessung geht nicht mehr. Manchmal schließe ich Masse und Vcc nicht mit an Ports 20-22, meine Atmels gehen aber unabhängig davon kaputt. Ich programmiere über den parallelen Port meines Laptops, diese Schaltung
Frank B. schrieb: > AVcc muß nur angeschlossen werden, wenn PortC benutzt wird, egal ob als > Analogeingang oder als digitaler I/O. Kann sein, dass es ohne AVCC funktioniert, aber korrekt ist das nicht, denn die Differenz beider Versorgungen darf 0,3V offiziell
-
Thread
DIP162 2x16 LCD Display von Conrad + Fleury
4 /**< pin for RW line ## ACHTUNG eigentlich bei mir auf GND gelegt## */ dann geht die Lib von Peter Fleury nicht, dort wird Busy vom Display abgefragt! Das geht nicht, wenn RW fest auf GND liegt... Wurde aber vor kurzem erst hier diskutiert. Gruß aus Berlin Michael
@Karl heinz Buchegger Sorry, ich stell mich total doof, aber könntest du mir zeigen, wie das geht? Ich hab es schon versucht, aber ich versteh einfach nicht, wo ich es überall ändern muss!
-
Thread
ICP auf ATMEGA8 wird nicht ausgelöst
= ~(1<<TOIE1); // Interrupts für Timer1 deaktivieren da µC sonst immer aufwachen würde PORTC = (1<<PC4); // Abschaltsignal lcd_clrscr(); lcd_puts("Abschalt"); set_sleep_mode(SLEEP_MODE_IDLE); sleep_mode(); [/c] Hab ich etwas übersehen? Im Anhang könnt ihr auch
sein, dass durch zu sehen da ich bis zu diesem besagtem [c]lcd_puts("Abschalt");[/c] komme. Danach geht der µC schlafen wird aber nicht mehr aufgeweckt :(. Was meint ihr?
-
Thread
keine Ausgabe am LCD mit ATmega32
@ Hc Zimmerer: hast Du Deinen Beitrag nachträglich noch mal geändert, siehe EDIT. wie geht das ?
Display an PORTC des ATMega32 und JTAG per Fuse enabled?
-
Thread
Sprachausgabe mit AVR
wird je höher ich die Samplingrate setze und ich keinen blassen schimmer habe woran es liegt. Es geht mir nicht darum die Daten auszugeben. Das funktioniert ja.
angeschlossen. - die +5V aus dem USB-Port speisen nun nur noch den LM386 direkt. Und siehe da, es geht alles - 1A Projekt ! .
-
Thread
USART ATMega 168
frame format: 8data, 2stop bit */ UCSR0C = (1<<USBS0)|(3<<UCSZ00); } ISR(USART_RX_vect) { PORTC = 0xFF; } int main(void) { USART_Init(USART_BAUD_SELECT); sei(); DDRC = 0xFF; sendUart("Programm gestartet\n"); PORTC = 0x00; //USART_Receive(); //PORTC = 0xFF; for(;;)
Ext STAL, Medium frequency" angegeben (Was ist der Unterschied zwischen: High - Medium - Low - es geht bei keinem...). Startup: 1K CK; No BOD function (was ist das??) und Boot block ist 128 Words angegeben. Ich hoffe das stimmt alles. Gruß Christian
-
Thread
Eingänge setzen beim AT90CAN128
Im Simulator geht es so...
klappt alles, hab nur was mit VCC und GND vertauscht! Jou...da würde ich aufpassen, ansonsten geht er vielleicht bald gar nicht mehr ;-)
-
Thread
#define nutzen um mehr als 8 Ein- oder Ausgänge anzusprechen
weiter. Ich arbeite in C. Daher wenn möglich auf dieser Sprache Tipps zukommen lassen. Außer es geht nicht unter C, was ich mir nicht vorstellen kann. Herzlichen Dank. Gabi
jeden beliebigen Portpin direkt ansprechen. Willst Du mehrere 8Bit-Ports gleichzeitig ansprechen, geht das mit einer Funktion. Z.B. für 4 Ports einlesen: [c] uint32_t get_32pins(void) { return PINA | PINB<<8 | (uint32_t)PINC<<16 | (uint32_t)PIND<<24; } [/c]
-
Thread
AVR-Studio/C: Wie überträgt man Variablen von einer Funktion in die andere?
main-Funktion uint8_t i = 2; i_verdoppeln (i); // Aufruf der i_verdoppeln-Funktion PORTC = i; // den Wert von i auf Port C ausgeben, hier i = 4 } return 0; [/c]
Debugger starten, Programmcode laufen lassen und solche Sachen. Aber Variablen übertragen, das geht nicht.
-
Thread
Bascom m16 ADC Problem
lesen und binär am port ausgeben. Was ist an meinem code falsch? Config Porta = Input Config Portc = Output Config Adc = Single , Prescaler = Auto Start Adc Print "START CONVERTER" Dim W As Word Do W = Getadc(0) W = W / 1024 W = W * 512 Print W Portc =
Ja das geht. In einem Register gibt es ein Bit für Left adjust... Da musst du dann explizit das H-Byte auslesen. MW
-
Thread
AVR, Structs zur Laufzeit reservieren
//Encoder Inputs struct encoder_devices encoders[]= { {&variables[10], &virtual_port[OFFSET_PORTC + 0], 0, &virtual_port[OFFSET_PORTC + 0], 1, 0, 60, 1, 0}, /*verweist auf Variable20, portc Ungruppiert, Pin0, portc Ungruppiert Pin1, min 0, max 60, increment 1, kein Modulo*/ }; [/c] Im
bereit zu halten, duerfte es besser sein ein Array fuer alle Typen gemeinsam zu haben. Am einfachsten geht das indem du eine Union fuer alle Typen erstellst und um die nochmal eine struct legst, die einen Identifier hat, welcher Typ enthalten ist. So ungefaehr: union AllTypesUnion { struct TypeA
-
Thread
16 Segment LED Display "Treiber"
vielen Funktionsaufrufe? [c] #define SEGH (1 << PC0) #define LEFT (SEGH | SEGG) void A(void) {PORTC = LEFT;} [/c] Wahrscheinlich geht es noch einfacher..
Oh:[c]void A(void) {PORTC = LEFT | RIGHT | UP | HORI;}[/c]
-
Thread
Atmega88P, Blinklicht in AtmelStudio 7 simulieren
ehrlich.. du willst dich doch hier nur wichtig machen ohne auch nur annähernd zu wissen worum es geht. Ich kann auf deine "Hilfe" verzichten. Vielen Dank für deine Beteiligung. Gruß Dennis
ehrlich.. du willst dich doch hier nur wichtig machen ohne auch nur > annähernd zu wissen worum es geht. Ich kann auf deine "Hilfe" > verzichten. Vielen Dank für deine Beteiligung. Laller
-
Thread
Maschinentakt auf Grossanzeige
Spannungsteiler o.Ä. den Geber an den Audioeingang anschließen. Dann ne App PROGRAMMIEREN... ach mist.. geht ja nicht :-)
// Interrupts global freischalten for(digit=0;;digit=(digit+1)%5) { PORTC=0; PORTB=1<<digit; PORTC=segment[(zahl/pow(10,digit))%10]; _delay_ms(10); } } Allzu aufwändig ist das also nicht.
-
Thread
Stoppuhr-Programm für ATmega8 bleibt immer an der gleichen Stelle hängen
mov r18, digit1 andi r18, 0b00111111 ori r18, 0b00001000 out PORTB, r31 out PORTC, r18 ldi R29, $21 WGLOOP0: ldi R30, $64 WGLOOP1: dec R30 brne WGLOOP1 dec R29 brne WGLOOP0 ldi r31, 0b00000010 sbrc digit2,7 ori r31, 0b00100000
ori r31, 0b00010000 mov r18, digit2 andi r18, 0b00110111 out PORTB, r31 out PORTC, r18 ldi R29, $21 WGLOOP2: ldi R30, $64 WGLOOP3: dec R30 brne WGLOOP3 dec R29 brne WGLOOP2 ldi r31, 0b00000100 sbrc digit3,7 ori r31, 0b00100000
-
Thread
seriell2parallel converter II
Baudrate asm volatile("ldi r16,4000000/(9600*16)-1" "\n\t" "out 0x09,r16"); outp(0xff, DDRC); // PORTC als Ausgang while(1); // Auf Interrupts warten } // wenn ein Zeichen übers UART kommt, nach PORTC ausgeben. SIGNAL(SIG_UART_RECV) { outp(inp(UDR), PORTC); } Diese Lösung kommt mir doch etwas
muss wenn ein neues Zeichen zu schicken ist? Also standardmässig ist es auf HIGH. Beim ersten Byte geht es auf LOW dann wieder auf HIGH unsw? Und vielen Dank für deinen Tipp, ich werde Holger fragen! Also danke noch einmal Niki
-
Thread
Hilfe zu DS18S20
geschlossen, glaube der ist schon kaputt, denn er zeiht soviel Strom, dass das Netzteil in begrenzung (1 A) geht :-(
sollte meinen, dass man den DS18S20 als TO92 parasitär kaum falsch anschliessen kann, denn eindeutiger geht es kaum.
-
Thread
XMEGA + iPod
Oszillator erst recht." > Stimmt, jedoch zu kurzen Testzwecken kann es reichen ??? Wenns nicht geht, dann gehts nicht. Egal, ob kurz oder lang. Peter
@peter > Wenns nicht geht, dann gehts nicht. Im Prinzip ja, es bestädigt auch, daß er seine RS232 nicht getestet hat (Oszi-Bildchen reichen nicht). Aber wie geschrieben ist der IPod gutmütig. Das 0xFF 0x55 ist für die
-
Thread
Benörige Hilfe bei Grafikdisplay LM240120
Geht nicht so einfach. Das sind 8051 (bzw. 8052) spezifische Sachen, die es auf dem AVR in der Form nicht gibt - jedenfalls nicht in C. Aber: So ein parallel LCD Interface gibts für AVR wie Sand am Meer
Ja, hatte den PortC komplett auf Ausgang gesetzt: DDRC |= (0xff). Wenn ich mir das mit den ganzen Speicherfressenden Bits anschaue, kann das wohl auch rechnerisch nicht passen. Bei 120x240 Pixeln wären das ja schon
-
Thread
Frage zu Pointern in C
Ich komme in diesem Fall nicht richtig mit den Zeigern klar. Kann jemand > helfen? nein, das geht nicht. Denn beim compiler kommt das ERROR_1 überhaupt nicht an. Der Preprozesor ersetzt vorher alles Stellen wo ERROR_1 durch eine 1. Damit ist auch klar warum es so nicht geht.
Hallo" steht schreibt der jetzt knallhart eine "7" hin. Egal was wo wann wie. #define LEDon 128 PORTC = LEDon; | Präprozessor | | PORTC = 128;
-
Thread
Einer Char-Variablen Ausgänge zuweisen
setzen bzw. löschen muss? Zum Beispiel: [c] char port_ersatz; // definiere port_ersatz.0 als PORTC.6 // definiere port_ersatz.1 als PORTC.7 // definiere port_ersatz.2 als PORTB.2 // definiere port_ersatz.3 als PORTB.3 // definiere port_ersatz.4 als PORTB.4 // definiere port_ersatz.5 als PORTB
Nein, so geht das nicht. Du musst schon getrennt den Ports die für sie relevanten Werte zuweisen, bei Deiner Bit-Anordnung also: PORTC = (Wert & 0x03) << 6; PORTB = (Wert & 0xFC);
-
Thread
Zwei Signale verarbeiten mit Flagg
> //PULLI > PINC |= (1 << PC0); > PINC |= (1 << PC1); PORTC. Die Pullups werden über PORTC eingeschaltet
... schaltet den Pull Up ein besser DDRD |= (1<<PD0); Wenn den Rest der Compiler frisst, geht's.
-
Thread
16bit Übergabe von uC zu CPLD
output portd=adress; //8bit-adress on db portb.2=1; //adressCPLD=1 portc.0=0; //CS=1 delay_us(10); //delay portc.0=1; //CS=0 portb.2=0; //adressCPLD=0; trisd=0xff; //portd=input //send lower/higher byte trisd=0x0; //portd=output portd=para; //byte on db portc.0=0; //CS=1, adressCPLD=0 portc.0=1; //CS=0 delay_us(10); trisd=0xff; //portd=input return; } [/c] Die Funktion wird also 2x für ein