-
Thread
Unterschiede zwischen ARM und ATmega in der Programmierung
höheren Programmiersprachen eindeutig vor. Allerdings ziehe ich es auch ASM vor, wenn es sein muss, geht aber sonst auch das.
Nur um das noch einmal klarzustellen: Es geht definitiv nicht um die Programmierung mit Arduino oder Klicktools. Es geht um reines C. Ich mag C++, programmiere auf dem Desktop fast ausschließlich damit, aber bei µCs bevorzuge ich einfach schlichtes
-
Thread
Spule für Atmega
Werte drin, sicher mit unterschiedlichen Lastbedingungen. >Muss es eine Drosselspule sein oder geht jede Induktivität mit 10µH, die >stromfest genug ist? Geht eigentlich alles . >(kenne mich mit SMD-Spulen so gut wie überhaupt nicht aus, die Fragen Was hat denn das mit SMD zu tun?
Stabspule mit möglichst hoher Resonenzfrequenz. Der Strom ist minimal (unter 10mA), wenn man nicht von PortC digitale Ausgänge mit Strom belastet, wenn also alles Analogeingänge sind oder unbenutzt.
-
Thread
I2C Display läuft nicht
SEN = 1; //while(SSP1CON2.ACKEN == 0){} } void i2c_send_data(unsigned short data_){ PORTC.RC0 = 1; PORTC.RC4 = SSP1CON2.ACKSTAT; SSP1BUF = data_; //Adressierung while(SSP1STAT.BF == 1); //Warten bis der Buffer leer ist PORTC = 0b00001011; Delay
SEN = 1; //while(SSP1CON2.ACKEN == 0){} } void i2c_send_data(unsigned short data_){ PORTC.RC0 = 1; PORTC.RC4 = SSP1CON2.ACKSTAT; SSP1BUF = data_; //Adressierung while(SSP1STAT.BF == 1); //Warten bis der Buffer leer ist PORTC = 0b00001011; Delay
-
Thread
Zufallsgenerator mit 7-Segment
(10); // Taster an Pin 10 nach VCC, 10k an GND if(free>0&&pressed&&!down) { PORTC=segment7[used[choosen]/10+10]; // 7 Segment für A..D an PortC PORTD=segment7[used[choosen]%10]; // 7 Segment für 10,1..9 an PortD used[choosen]=used[free-1]; free--; } down=pressed
Tastenmodul-fur-Arduino-Raspberry-Pi/162722494505?hash=item25e3043829:g:7rIAAOSwDkVZ7VGZ Mehr mit Buttons und LEDs geht wohl nicht mit einem TM1671 ;-)
-
Thread
In C mehrere Register per Variable gleichzeitig verändern
dann natürlich nur die Möglichkeit sie so schnell wie möglich nacheinander zu beschreiben. Anders gehts ja nicht.
Theor schrieb im Beitrag #5292505: > Worum geht es? Der TO ist C-Anfänger, möchte Code-kopien vermeiden und hat unglücklicherweise geschrieben, dass er auf einem uC Register beschreiben will. Es geht weder um den konkreten uC-Typ noch um Register
-
Thread
Atmega8 SPI läuft nicht
// sende Zeichenfolge über Bluetoothemodul an Terminal spi_tranceiver(0x0f); PORTC|=(1<<PC0); PORTC&=~(1<<PC0); _delay_ms(1000); Kommentiere ich den "spi_tranceiver..." aus kommt auf meinem Terminal das Signal vom Befehl "UART_puti" im 1 sek Takt auf dem Terminal. Ist die SPI-Zeile
Hallo, soweit richtig. Es geht aber um den Pin SS (PB2), das gehört zur SPI-Hardware. Und wenn eben der SPI als Master gesetzt wird, kann dieser Pin entweder als Ausgang gesetzt werden und unabhängig genutzt werden oder er wird als
-
Thread
Thermomter DS18b20
BASCOM gibt > es dafür anscheinen keinen Befehl. Naja, das ist ja auch nicht richtig: Config Portc.0 = Input Config Portc.1 = Input Config Portc.2 = Input Es muß heißen: config Pinc.0 = Input config Pinc.1 = Input config Pinc.2 = Input Pull-up Widerstände kann man dann als Nächstes so einschalten: PortC = &B00000111 Das schaltet die Ziehwiderstände an PortC 0, 1 und 2 ein und läßt den Rest in Ruhe. MfG Paul
-
Thread
Fehler LCD-Display im 8Bit-Modus
Config Lcdpin = Pin , Db4 = Portc.3 , Db5 = Portc.2 , Db6 = Portc.1 , Db7 = Portc.0 , E = Portc.4 , Rs = Portc.5 Config Lcd = 20 * 2 Cursor Off
Homer schrieb im Beitrag #5269599: > Config Lcdpin = Pin , Db4 = Portc.3 , Db5 = Portc.2 , Db6 = > Portc.1 , > Db7 = Portc.0 ... HJH-MD schrieb im Beitrag #5269283: > im 8-Bit-Modus
-
Thread
STM32F205 der DMA und der ADC
DMA_SIZE_HWORD, //Größe der zu Übertragenden Daten circular, //mem wird circulär befüllt = DMA geht nie zuende DMA_PERIPH_TO_MEM, //in welche Richtung geht der DMA (mem to mem ist verboten) callb_dma, //Callback be auftretendem IRQ callb_data_dma //Daten für den Callback
//Größe der zu Übertragenden Daten unsigned int circular, //mem wird circulär befüllt = DMA geht nie zuende enum dma_dir ddir, //in welche Richtung geht der DMA (mem to mem ist verboten) void (*callb)(unsigned int, void*), //Callback be auftretendem IRQ void *callb_data
-
Thread
Flanken erkennung verbessern.vielleicht mit C++?
Guten Tag, ich weiß nicht ob es Euch auch immer wieder so geht das ihr in Euren Programmen eine Flanken Erkennung braucht? Ich benötige das immer wieder. Im Prinzip ist dies kein Problem. Aber damit nicht jedes mal wieder das Rad neu erfunden wird und vor Allem
Nur mal so als Idee ... [c] using PortC = Port<MCU::PortRegister, C>; using buttonPin = Pin<PortC, 1>; using button = ActiveLow<buttonPin, Input>; using ledPin = Pin<PortC, 1>; using led = ActiveHigh<ledPin, Output>;
-
Thread
ATmega328P; Bit setzen/löschen eines Integers klappt nicht.
geht.
noch keinem die eigene Leistung erspart. Also nicht meckern... Sondern: Zeige uns, wie es besser geht!
-
Thread
Probleme mit meinem LCD-Display
Deshalb mal ein Bild vom Schaltungsaufbau und die Pinbelegung. Also wo der I2C vom Pic an den uC geht. Gruß Frank
überprüfen; abwechselnd 0xff 0x00 mit 1000ms-delay senden und gucken, ob die pins schalten. Dann gehts weiter.
-
Thread
AVR Programmierung C++
> ISR ... Kann ich die irgendwie in die Klasse mit einbinden? Ich glaube das geht leider nicht.
SwitchState() { if(PINB&(1<<pin_sw)) return 0; return 1; } void SetLED(int state) { if(state) PORTC|=(1<<pin_led); else PORTC&=~(1<<pin_led); } void SetFan(int state) { if(state) PORTC|=(1<<pin_fan); else PORTC&=~(1<<pin_fan); } void SetGainSig(int state) { if(state) PORTC |= (1
-
Thread
AD-Wert springt
55+ [/pre] Denn die Software nimmt ja jeden der '+' Zwischenschritte als äquidistant an. Und geht daher von falschen Voraussetzungen aus...
Fehler bei zu hoher Ausgangsimpedanz am ADC-Eingang merkt man auch daran, daß die Linearität 'flöten geht'. Bei den 10 Bit eines AVR ADCs ist das alles weniger problematisch.
-
Thread
LCD-Display AV1624 ansteuer Probleme
Hi Um welchen Controller geht es? MfG Spess
Pin) | (1<<DB2_Pin) | (1<<DB3_Pin) | (1<<DB4_Pin) |(1<<DB5_Pin) | (1<<DB6_Pin) | (1<<DB7_Pin); //Portc Alle als Outout Exe_DDR = (1<<R_W_Pin) | (1<<Enable_Pin) | (1<<RS_Pin); //PortA teils als Output return; }
-
Thread
AVR Soft-PWM mit max. 256 LEDs
,X+ ;2 out PORTC,r14 ;1 sbi PORTA,0 ;2 out PORTA,r15 ;1 ld r14,X+ ;2 out PORTB,r14 ;1 ld r14,X+ ;2 out PORTC
r14,X+ ;2 out PORTB,r14 ;1 ld r14,X+ ;2 out PORTC,r14 ;1 sbi PORTA,2 ;2 out PORTA,r15 ;1 ld r14,X+ ;2 out PORTB,r14 ;1 ld r14,X+ ;2 out PORTC
-
Thread
Pulsweite messen (Input Capture) mit ATMega328p
define baud FOSC/16/baud_rate-1 #define TICKS_VAL (FOSC/256) #define LED_PIN(state) { (state)?(PORTC |= (1<<PC0) ):(PORTC &= ~(1<<PC0)) ; } #define TOGGLE_LED() {PORTC ^= 1<<PC0; } void capture_function(); volatile uint8_t button_flag=0; volatile uint8_t capture_occured =0; volatile uint8
. Viel eleganter ginge es z.B. mit einem STM32Fxxx. Ein Griff in die Schaublade zeigt auch wie es geht: http://mino-elektronik.de/FM_407/fmeter_407.htm#a5 ;-) Aber der TO hat seinen ATmega328 und sollte sein Problem damit gelöst bekommen.
-
Thread
Atmega16 100kHz Encodersignal
PORTC=((PORTC&0xC3)|encodervalue[i] ... Da musst Du den Port erstmal lesen, mit c3 verunden, encodervalue lesen, mit dem vorangegangenen verodern und dann in Port schreiben, das sind schon einige Schritte
schreib doch einfach direkt in Port, sind ja nur 4 Zustände, ergo 4 Zeilen Code, zur Not in ASM out PORTC, 0xirgendwas
-
Thread
Programm mit einem Taster steuern
static SimpleTimer timer; static byte index = 0; if(!anforderung) { index = 0; PORTC &= ~maske; timer.stop(); return; } if(timer(zeit)) { PORTC = (PORTC & ~maske) | muster[index]; digitalWrite(LED_BUILTIN,!digitalRead(LED_BUILTIN)); timer.start
mit Unterstützung von Verifikations-Werkzeugen. Jaja, und immer schön blinken wenn man auf Klo geht.
-
Thread
SPI Geschwindigkeit XMega
void) // SPI an PORTC einstellen { cli(); // Interrupts deaktivieren SPI_PORT.CTRL = 0b01010000; // SPI master, clock idle low, data setup on trailing edge, data sampled on leading edge, Geschw
taktzyklengenaue) Ansteuerung, erst dann ergibt so ein Burst-Betrieb irgendeinen Sinn. Ja, das geht nicht mit C, but who cares... In C geht es immerhin, wenn man DMA dafür benutzen kann. Aber am Ende jeder DMA-Sequenz steht dann doch wieder eine ISR... Und wie wenig effizient in C implementierte
-
Thread
Encoder Tutorial
PIND & 1<<PD2) #define PHASE_B (PIND & 1<<PD3) #define LEDS_DDR DDRC #define LEDS PORTC // LEDs against VCC volatile int8_t enc_delta; // -128 ... 127 static int8_t last; void encode_init( void ) { int8_t new; new = 0; if( PHASE_A ) new = 3;
zur Funktion und Verdrahtung. also, wenn das ganze funktioniert wird der der Zählwert Binär an PORTC ausgegeben. dh. je nach Wert müssten die LEDS von PC0-PC7 leuchten ? ich habe an PORTC Die ANODE (+) und an GND eine gemeinsame Kathode angeschlossen. // LEDs against VCC richtig von dem Encoder
-
Thread
RGB-LED Ansteuerung mittels PWM in AVR Studio 4 (C-Programmieren)
wie es angeschlossen wird, was gemacht werden muss, nur hab ich halt sobald es um's Programmieren geht, wirklich keine Vorstellung, wie ich das anzustellen habe. Ich weiß, das ist peinlich, vor allem, wenn man sich stundenlang damit beschäftigt und es trotzdem nicht begreift...
und rate dir jemanden zu suchen, der mit dir zusammen mal ein paar Grundlagen und Beispiele durch geht. rhf
-
Thread
Atxmega Timer Compare
PWM bei Schrittmotoren? Da ist doch der Takt entscheidend und nicht die > Pulseweite? Ja - das geht auch bei PWM.
im Beitrag #5167697: > Versteh nicht was mir PWM > bringen soll... Habe auch nur geschrieben "geht auch mit PWM" - oder?
-
Thread
ATXmega32A4 & MCP4018 I²C dig. Poti Problem
if(TWIC_MASTER_STATUS & (1<<TWI_MASTER_ARBLOST_bp)) { twiname->MASTER.CTRLA = 0; PORTC.DIRSET = PIN1_bm; for(uint8_t i=0;i<9;i++) { PORTC.OUTSET = PIN1_bm; _delay_us(20); PORTC.OUTCLR = PIN1_bm; _delay_us(20); } PORTC.DIRCLR = PIN1_bm;
ich verstehe es einfach nicht, dass kann doch nicht sein. Atmel Lib: Ich initialisiere: PORTC = Ausgang PORTC SDA/SCL = WiredANdPullUp (ext. Pullup ist auch vorhanden) TWI_MasterInit(&twiMaster, &TWIC, TWI_MASTER_INTLVL_HI_gc, TWI_BAUD(F_CPU, 100000)); sei(); TWI_MasterWrite(&twiMaster
-
Thread
PIC18F26k22 PORTC Ausgang schaltet nicht
PIC18F26k22. Speziell betrifft das die Pins C0 und C1. An sich möchte ich testweise lediglich den ganzen PORTC auf 1 schalten, das funktioniert aber aus mir unbekannten gründen nur für C2-C7? Ich habe den Code zusammengekürzt [code] //CONTROLLER INITIALISATION #pragma config FOSC = INTIO67 #pragma config
alles ab bzw. konfiguriere diese. Gibt von Microchip auch ein tool was dir das alles generiert, geht aber hier vermutlich von Hand schneller.
-
Thread
CAN funktioniert , aber nicht im vollen Umfang
PORTC &= ~(1<<PC4); PORTD |= (1<<PD7); } // ORANGENE LED (PC4) leuchtet, Rote LED (PB2) aus, Blaue LED (PD7) aus. else { PORTB &= ~(1<<PB2); PORTC |= (1<<PC4);
Hast recht, werd ich in Zukunft machen! Für die Vollständigkeit, so geht es!
-
Thread
ATtiny2313 & Pin Change Interrupt
aber später von Vorteil sein. Schaut man nämlich in 1-2 Jahren wieder ins Projekt rein muss man bei PORTC |= 0b00001000 erstmal die Nullen abzählen und fragt sich vielleicht auch, was man damit bezwecken wollte wobei aus einem PORTC |= (1 << PC3) sofort ersichtlich ist, dass man hier den Pin PC3 setzen
während man sich beim Binärcode durchaus dumm und dusselig suchen kann, warum denn nun die LED nicht an geht, die an PA5 angeschlossen ist, sieht man bei der Shift-Schreibweise sofort, dass man aus versehen PA4 geschrieben hat.
-
Thread
Schieberegister SN54HC595 mit Atmel atmega 88 ansteuern
Taster T */ //Parameterliste: unsigned int zaehler_taster =0; pin_aus(PORTC,PC4);// Ausgangssteuerung bleibt aktiv. pin_ein(PORTC,PC5);// Seriellen Eingang = 1. pin_ein(PORTC,PC1);// SChiftregister nicht reseten. while (1) { /* Ziel1: LED soll entsprechend
PB0))) { zaehler_taster++; if(zaehler_taster==1) { pin_ein(PORTC,PC2);//um 1 bit schieben. pin_aus(PORTC,PC2);//schieben beenden. pin_ein(PORTC,PC3);//speichern beginnen. pin_aus(PORTC,PC3);//speichern beenden. } }
-
Thread
sei() innerhalb eines ISR()
// read the register data i2c_stop(); // stop //sei(); //} //...weiter gehts i2c_write(data); i2c_stop(); sei(); } [/c] Sprich es kommt im besten Fall Müll auf dem Display an (dafür verwende ich das "I2C_WriteRegister") im Schlimmsten Fall hängt er sich auf? (
die periodische Abfrage (vulgo "pulle") innerhalb einer Funktion im Hauptprogramm machen. Wie das geht, steht in meinem Link.
-
Thread
PIN vs PORT beim OUTPUT
| (1 << PC6) | (1 << PC7)); /* Ausgaenge */ void heater_ON() { if (!blockedOutputs) { PORTC |= (1 << PC7); } virtualTankUp = true; } void heater_OFF() { PORTC &= ~(1 << PC7); } bool heater_STATUS(){ return (PINC & (1 << PC7)); //return (PORTC & (1 << PC7)); }
> Im ohmschen Normalfall geht es hier wie erwartet nach anywhere Also bei mir (ein ATmega328P) geht es, wie erwartet, nach anywhereelse.
-
Thread
2 8bit Output-Register zu einem 13bit Register machen
Atmega8 zur Verfügung. Ich habe die LEDs über Transistoren mit dem gesamten PORTD und 5 Pins des PORTC verbunden. Das Zählen bis 8 bit geht ja noch recht einfach. PORTD = Wert. Aber wenn ich nun über die 8 bit hinaus möchte, weiß ich gerade nicht so recht weiter. Hat von euch jemand eine Idee dazu ?
: Wenn die verbleibenden 3 Bits von PORTC für andere Sachen verwenden werden und damit unverändert bleiben sollen, verkompliziert sich die letzte Zeile etwas, nämlich zu: [c] PORTC &= ~1F; // untere 5 Bits löschen PORTC
-
Thread
PID Regler Code für Relaisansteuerung
XMega z.B. die OUTSET und OUTCLR Register an jedem Port. Also z.B. [c] // Heizungsausgang ist hier PORTC Bit 0 #define HEIZUNG PIN0_bm // atomic PORTC.OUTSET = HEIZUNG; // schaltet Heizung auf high PORTC.OUTCLR = HEIZUNG; // schaltet Heizung auf low // es geht aber auch klassisch // read-modify-write
XMega z.B. die OUTSET und OUTCLR Register an jedem Port. > Also z.B.// Heizungsausgang ist hier PORTC Bit 0 > #define HEIZUNG PIN0_bm > // atomic > PORTC.OUTSET = HEIZUNG; // schaltet Heizung auf high > PORTC.OUTCLR = HEIZUNG; // schaltet Heizung auf low > // es geht aber auch klassisch > /
-
Thread
Loxone Link - CAN-Bus
else { if (((b2 & (1 << (i - 8))) >> (i - 8)) == 1) PORTC |= (1 << (i-8)); else PORTC &= ~(1 << (i-8)); } } } } } } } [/code] Der Code ist noch nicht vollständig
Ja genau, es geht in dem Repo um Loxone Hardware die über den LoxLink oder TreeBus verbunden ist. ich wüsste auch nicht warum man reale Hardware kaufen sollte um dann den Miniserver zu Simulieren. Darum geht es auch
-
Thread
Schieberegister mit Atmega88 unter Verwendung von AtmelStudio und mySmartUSBlite ansteuern
{ pin_ein(PORTC,PC4); //Schiebetakt aktivieren pin_aus(PORTC,PC4); //Schiebetakt reserten pin_aus(PORTC,PC1); //Seriellen Eingang auf dig. Null } pin_ein(PORTC,PC3); //Speichertakt
//pin_aus(PORTC,PC1); //Seriellen Eingang auf dig. Null //} pin_ein(PORTC,PC3); //Speichertakt aktivieren. pin_aus(PORTC,PC3); //speichern. pin_aus(PORTC,PC2); //Ausgänge
-
Thread
XMEGA: Waveform generator ungenau
damit [c] PORTE.DIRSET = (1<<PIN4); PORTE.REMAP = PORT_TC0A_bm; [/c] auf PIN4 legen. (Leider geht nur PIN4 - kein anderer)
und mit CTRLB der Pin angegeben werden kann, wo die Frequenz ausgegeben werden soll. Ohne die hires geht das auch auf allen Pins. Mit hires nur auf CCA/CCB. Warum auch immer.
-
Thread
Atmega Strom sparen
auf einem Steckbrett und probiere nur aus wie weit ich den runter kriege und weniger als 0.55 mA geht bei mir scheinbar nicht...
es geht habe ich in einem Video auf Youtube. https://www.youtube.com/watch?v=urLSDi7SD8M&t=189s @Joachim B. danke für deine Hinweise, werde das beachten! Ich werde mal die ganze Schaltung aufbauen um
-
Thread
8 Bit nach 3x BCD umwandeln
mit 10 ist ja ((x SHL 3) + (x SHL 1)), also geht das durch passende Verdrahtung am Addierer. Der Wert der entsprechenden Stelle muss noch zum Zwischen- ergebnis addiert werden; dafür geht der andere Addierer drauf. Da für die Hunderterstelle
µC als voll selbständige Teil eingebauen, ohne externe Details. Z.B. PORTD nimmt 8 bit, PORTB und PORTC geben 3x4 Bit BCD aus. Man kann auch Pins so definieren, wie das bequemer wird.
-
Thread
XMEGA & TWI -> Lese Problem
toggle die LED an einem der GPIOS hin und her. Und danach lese ich. > Das Schreiben klappt. Das geht also auch dauerhaft, also nach dem ersten Zyklus lesen geht das schreiben wieder ohne Probleme ? Mit der Funktion lese ich bei einem Atxmega E Daten aus einem FRAM mit aus. Page_adress ist die
if(twiname->MASTER.STATUS & (1<<TWI_MASTER_ARBLOST_bp)) { twiname->MASTER.CTRLA = 0; PORTC.DIRSET = PIN1_bm; for(uint8_t i=0;i<9;i++) { PORTC.OUTSET = PIN1_bm; _delay_us(20); PORTC.OUTCLR = PIN1_bm; _delay_us(20); } PORTC.DIRCLR = PIN1_bm;
-
Thread
Grafikdisplay mit SSD1289 mit XMEGA, DMA und 16bit Interface sehr schnell
PORTC // control line pins #define LCD_CD_bm PIN2_bm //RS #define LCD_WR_bm PIN3_bm //LCMPD of TCC2 #define LCD_RD_bm PIN4_bm #define LCD_CS_bm PIN5_bm #define LCD_RES_bm PIN6
Ergebnis kann sich sehen lassen. Nur was machst du mit diesem Ergebnis? Die praktische Nutzung geht gegen Null, ausser dass es auch "von hinten durch die Brust ins Auge" funktioniert.
-
Thread
Frage zu AVR-C
für: > [c] > PORTB = PORTB & (1<<1); > [/c] > > Genauso verhält es sich mit dem "Oder" Es geht ja darum einen Ausgang anzusteuern. Das kann man doch auch so machen. PORTC = (1<<1); wozu noch ein &, bzw |....
O. A. schrieb im Beitrag #5031960: > Es geht ja darum einen Ausgang anzusteuern. > Das kann man doch auch so machen. > > PORTC = (1<<1); > > wozu noch ein &, bzw |.... Nun so ein 8Bit Port hat 8 unterschiedliche Zustände, das sind die
-
Thread
PORTA RA0 bis RA3 auf input setzen
pin's //**********Define********************************************** #define LEDl PORTC.RC0 //LED low liegt an Port RC0 #define LEDh PORTC.RC2 //Led high liegt an Port RC2 #define SIGNAL PORTA.RA4 //SIGNAL liegt an Port RA4 #define meml PORTC.RC4
wertl; void main(void) { // Hauptprogramm TRISC = 0x30; // set PORTC 0-3=output, 4+5=input PORTC = 0x30; // set PORTC 0-3 0V
-
Thread
Taster auf "1" abfragen in AVR-C
//PortB Eingänge DDRC=0xFF; //PortC Ausgänge PORTB=0xFF; //Pullup do { PORTC = 0; } while(!(PINB & (0x01))); //wenn TasterEin gedrückt { PORTC = 0x01; _delay_ms(500); PORTC = 0x02; _delay_ms(500); PORTC = 0x04; _delay_ms(500); } return 0; } [/c
)..warum? Es müsste doch alles ausgehen wegen PORTC = 0;
-
Thread
AVR-C Programm Ledansteuerung
Ausgang_schalten==1) //Bedingung prüfen für Aus/NotAus, wenn "1" Aus/NotAus nicht gedrückt PORTC = (1<<0)|(1<<1); // C.0 und C.1 ansteuern für Ausgabe else PORTC = 0; } int main() { DDRC = 0xFF; // Ausgänge DDRB = 0x00; // Eingänge //PORTB = 0b00000001
Schleife mit "return 0;" > Die Klammer } muss *vor* das "return 0;". > > Edit: zu spät :-(( Es geht nun. Vielen vielen Dank.
-
Thread
Selbsthaltung durch Variable
avr/io.h> Int Einschaltet=0; Int main (void){ DDRC &= ~(1<<PC0),~(1<<PC1),~(1<<PC2); // Eingang PORTC = 0x00; // Ohne pulldownwid… While(1){ if (PINC & (1<<PC0)==1){ // Bedingung = true führe die Schleife aus Eingeschaltet=1;} // Variable Eingeschaltet wird der Wert 1 gegeben if (Eingeschaltet
des Komma-Operators durchdenken. Davon abgesehen: die Portpins eines AVRs (um den es offenbar geht) stehen nach einem Reset auf Eingang. > PORTC = 0x00; // Ohne pulldownwid… … außerdem hat ein AVR keine Pulldowns sondern bestenfalls Pullups, aber auch die sind nach Reset abgeschaltet.
-
Thread
Benutzung des Arduino Bootloaders
Board einschalten - sie bleibt aus. [code] int main (void) { DDRB=255; PORTB=255; DDRC=255; PORTC=255; DDRD=255; PORTD=255; for(;;); .. [/code]
Hach, jetzt gehts, war nur ein Deppenfehler. Im makefile war mega8 als Target gesetzt, deshalb leuchtete auf dem mega328 wohl keine LED. Allerdings kommt das beigepackte Arduino-avrdude nicht mit dem USBASP klar