-
Thread
Arduino UNO und I2C - A4 Problem
am Original Arduino UNO R3 gesockelt eine RTC mit DS1307 anzuschießen. Mit der Arduino Umgebung geht das eigentlich sehr einfach. Ich habe die wire.h verwendet. Leider klappte das überhaupt nicht. So habe ich mir das Oszilloskop zur Hilfe genommen. Auf der Taktleitung (A5;PC5) waren nur 3 unregelmäßige
auf das Board gegangen. Das Testprogramm sieht so aus: [CODE] DDRC = 0xFF; while(1) { PORTC = 0xFF; _delay_us(5); PORTC = 0; _delay_us(5); } [/CODE] Da erwarte ich eine Rechteckspannung von ungefähr 100kHz, wie es bei I2C nicht unüblich ist. Auf PC5 ist das auch OK, aber
-
Thread
entprellen.bekomme es nicht richtig hin.
void) { // **** Einrichten von Ein- und Ausgängen *************** DDRC = 0x01; // PortC 0 Ausgänge PORTC1-6 Eingänge PORTC |=0x02; // Pull Up an PortC0 und 1 aktivieren } char taster(void) { static unsigned char zustand; char rw = 0; if(zustand == 0 && !(TASTERPORT
durchaus gerne 1000 und 1 mal die selben Fragen beantwortet, wenn es um seinem eigenen Entprellen-Code geht.
-
Thread
Bascom alias
Moin moin nein das geht nicht. Die alias Funktion ist nur für ein bessere Verständlichkeit/Lesbarkeit des Programmes da. Wird das Programm kompeliert, wird dem alias eine Variable zugewiesen.
hwstack = 32 $swstack = 30 $framesize = 40 Config Porta = Output Config Portb = Output Config Portc = Output Config Portd = Output Portd = 255 Portc = 255 Porta = 255 Config Timer0 = Timer , Prescale = 64 On Timer0 Timer_isr Enable Timer0 Enable Interrupts Stop Timer0 Config Portd.5
-
Thread
Definition der baudrate: Fehler- "expected identifier or '(' before numeric constant"
include <util/delay.h> #include <util/setbaud.h> #include <stdio.h> void io_init(void){ PORTC_DIR |= (1<<4); } void setUPSerial() { PORTC_REMAP |= 0x16; PORTC_OUTSET = PIN3_bm; PORTC_DIRSET = PIN3_bm; PORTC_OUTCLR = PIN2_bm; PORTC_DIRCLR = PIN2_bm; USARTC0
; } void setUPSerial() { PORTC_REMAP |= 0x16; PORTC_OUTSET = PIN3_bm; PORTC_DIRSET = PIN3_bm; PORTC_OUTCLR = PIN2_bm; PORTC_DIRCLR = PIN2_bm; USARTC0_BAUDCTRLB = 0; USARTC0_BAUDCTRLA = 0x22; USARTC0
-
Thread
Erklärung des Programmes/der Software
Register DDRC, PC4 wird Ausgang PIND ...: Ist das 5. Bit in PIND gesetzt? Ist der Eingang high? PORTC ...: Setzt bzw. löscht Bit 5 im PortC Register, Led an bzw. aus (je nach äußerer Beschaltung).
von main ein int ist > * er eventuell einen return am Ende von main ergänzen muss Vielleicht geht das nicht wegen des Fachkräftemangels? ;-)
-
Thread
ATmega128 und SPI Problem
nein, er muss nicht auf Ausgang stehen, aber er darf niemals low werden, sonst geht der µC vom Master- in den Slave-mode über.
den Pin wenigstens noch gebrauchen. Darum macht es Sinn ihn direkt als CS Pin zu nehmen. Dafür geht er gut, man hat keinen Pin verschwendet und man kommt später nicht in Versuchung den Pin als Eingang zu verwenden.
-
Thread
SPI auf Board XMEGA256A3BU Xplained
versorgst du dann das Board mit Spannung? Nimmst du ein Pin-Paar (VCC/GND) an einem der Header? Das geht glaube ich nicht, da an diesen PINS der Ausgang eines Spannungreglers (5V -> 3,3V) hängt.
Beschaltung des Headers J4. Pin 1-4 geht auf PE0-3, Pin 5-8 geht auf PD0-3. Wenn du jetzt ins Datenblatt des Devices guckst: http://www.atmel.com/Images/Atmel-8362-8-and-16bit-AVR-microcontroller-ATxmega256A3BU_datasheet.pdf findest du
-
Thread
I2C Kein ACK :-(
Mein Code leider geht es immer noch nicht. Hast du ein anderen Tipp? #define F_CPU 16000000UL #define BAUD 9600 // define baud #define BAUDRATE ((F_CPU)/(BAUD*16UL)-1) #define SCL_CLOCK
I2C_sende(adresse); } void I2C_init(void) { DDRC &= !((1<<DD0)|(1<<DD1)); PORTC = (1<<DD0)|(1<<DD1); TWSR = 0; /* no prescaler */ TWBR = ((F_CPU/SCL_CLOCK)-16)/2; /* must be > 10 for stable operation */ } int main(void) { USART_init
-
Artikel
Pollin Funk-AVR-Evaluationsboard
2x 2 bis 3 minus 1 = 3 bis 5 Output-Pins Fünfte Reduzierungsstufe...: Nur 1 Pin zur Ansteuerung, geht das? Auch das geht, wenn z. B. die Ausgabe seriell zu einem weiteren Mikrocontroller geschickt wird, der dann eine eigene Displaysteuerung besitzt. Zufällig fand sich in meiner Bastelkiste ein BCD-nach
Schleife über den Zähler ms für MS_AKTIV Millisekunden auf. Ist in der if-Abfrage ms gleich MS_AKTIV, geht der Atmega8 geht nach dem Abschalten der LED5 und Anschalten der LED6 an der Stelle sleep_cpu() in den Schlafmodus. Nach der Zeit WDTO_2S wird der zu Programmstart mit WDTO_2S aufgesetzte Watchdog aktiv
-
Thread
Custom character bei Display mit HD44780
7 Font PORTC = 0b00000000; //Enable PORTC = 0b00000001; _delay_ms(500); PORTA = 0b00001111; //Display an, Cursor move, Cursor blinkt nicht PORTC = 0b00000000; //Enable PORTC
= 0b00000000; //Enable PORTC = 0b00000001; PORTD = 0b00000001; //Data mode PORTA = 0b00000000; //Schreibe neues Zeichen --> nichts passiert PORTC = 0b00000000; //Enable PORTC = 0b00000001;
-
Thread
Fifo über SPI verschicken
" der 16 Bit Befehl/Wert ist, welcher übertragen werden soll. [c]for(int i = 0; i<2; i++){ PORTC &= ~(1<<PC1); //PIN PC1 auf Low ziehen um dem Slave den Start der Übertragung zu signalisieren uint8_t byte_to_send = (command && 0x00FF); //Die unteren 8 Bit maskieren spi_send(byte_to_send
>> 8; //Die oberen 8 Bit maskieren spi_send(byte_to_send); // Übertragen der oberen 8 Bit PORTC |= (1<<PC1); //PIN PC1 auf High ziehen um dem Slave die Beendigung der Übertragung zu Signalisieren }[/c]
-
Thread
XBee-Pro 868 Digital Input
Also mit CE=0 bei Beiden gehts auch nicht. Woher weiß der 2. XBee, dass er das Eingangssignal vom XBee von Pin 19 auch an PIN 19 ausgeben soll?
$baud = 9600 Dim S As String * 18 On URXC OnRxD Enable URXC Enable Interrupts Config Portc.5 = Output Portc.5 = 0 Do //Vergleich der Hexwerte Loop End Onrxd: 'S = S + Chr(udr) S = Chr(udr) Return [/c] Kann mir jemand bei dem Vergleich auf den HEX Wert helfen?
-
Thread
Denkfehler mit PCA9536 (Problem)
Geht auch nicht
Werde es lesen. Hab bereits ca 10 andere Bauteile angesteuert. Der BUS steht, Anzeige geht, Temp geht. Ist allerdings der erste PCA .. achim
-
Thread
Bascom Variablen
lezten Beispiel nicht :-) Weiss egrade nicht mehr genau wie die in PAScal lauteten aber im PRinzip geht es so
Port B , ' $regfile = "m32def.dat" $crystal = 8000000 'SDA und SCL definieren Config Sda = Portc.1 Config Scl = Portc.0 Dim X As Byte Dim A As Byte Dim B As Byte Dim Lesen As Byte CLS Do '---- schreibe
-
Thread
USART Zeichenausgabe nach Reset
Hallo Chris, nein, es geht auch so nicht [c] //set baud rate UBRR0H = 0x00; UBRR0H = (uint8_t) (UBRR_BAUD0>>8); UBRR0L = (uint8_t) UBRR_BAUD0; //set frame format to 'async USART' and 8n1 UCSR0C
gesicherten Verhältnissen ausgehen. Sicher ist sicher. Perfekt !!! Danke für die Hilfe, so geht es und ich fühle mich wohler :-)
-
Thread
Atmega16 erase funktioniert nicht mit ISP
dir einfach bei der nächsten Bestellung für einen aufgerundeten Centbetrag überlassen. Ansonsten geht es mir um das Prinzip dieser Löschung, zu der ich im Datenblatt nichts finden konnte. Grüße Oekel
Problem wäre in diesem Fall gelöst... Der ATmega16 verfügt übrigens auch einen JTAG Anschluss auf PORTC, ich nutze den ebenfalls, mit dem habe ich nie Probleme, mit dem ISP hatte ich öfters das eine oder das andere Problem. lg
-
Thread
PWM und AD-Messung Assembler
******************************************************** ;## 7 Segmentanzeige #define A_SEG PORTC,0 #define B_SEG PORTC,1 #define C_SEG PORTC,2 #define D_SEG PORTC,3 #define E_SEG PORTC,4 #define F_SEG PORTC,5 #define G_SEG PORTA,4 #define DP_SEG PORTB,4 #define
robin schrieb im Beitrag #3973361: > Ich denke deinem Prof geht es in erster Linie um das effiziente > umrechnen der zahlen. Ich denke, hier geht es konkret darum, überhaupt erst mal irgendwie umzurechnen. Effizient kommt später. Lieber eine Lösung, die
-
Thread
Problem bei der Auswertung eines Neigungsschalters
und weitermachen... Ich hatte den Sensor an ein RN-Control Bord angeschlossen. Der hat an seinem Portc zusätzliche LEDs und vor allem Widerstände, die den Sensor anscheinend stören. Soviel zum Thema "Beschaltung nach DB". Ohne LED Klimbim geht's sogar mit dem internen Pull-up ohne Probleme.
-
Thread
4-wire resistive Touchscreen Schaltung TWI USART-Anbindung ATmega8 Assembler LS-7 LS-8
.equ TOUCH_XN_PIN_NR = 3 .equ TOUCH_XN_DDR = DDRC .equ TOUCH_XN_PORT = PORTC .equ TOUCH_XN_PIN = PINC Nach meiner Meinung ist ein Multi-Touch-Screen mit diesem Verfahren nicht möglich, oder? Das Assembler-Programm könnte etwas effektiver programmiert werden
Hallo Bernhard, ja, jetzt ist mir das auch klar - danke für die gute Erklärung! Das geht bei mir wegen der Widerstände nicht, da ich zwischne den Widerständen und dem Touchpanel keine Anschlüsse zum µC geführt habe (sonst müsste ich noch weitere vier Portpins für das Touchpanel verwenden
-
Thread
MIDI-Controller mit Klinkenbuchsen - Überspannung und Kurzschluss
8 Pedale an PortA über 6,3mm Stereo-Klinke extern angeschlossen -> Analoge Eingänge 8 Taster an PortC über 6,3mm Mono-Klinke extern angeschlossen -> Digitale Eingänge SPI-Bus PortB4-7 inkl. Reset über 9Pol Sub-D Buchse herausgeführt -> Update und Erweiterungen Die Beschaltung des LCD-Displays,
auch nichts. AREF ist in dem Fall auf VCC zu legen bzw. zu > programmieren. Falsch gelesen. Es geht um die Strombegrenzung an den analogen Controller Eingängen - Pedale z.B. Ist auch schon über einen Monat her, aber der TE will Pedale auf die Stereoklinken legen und gegen Überstrom bei etwaigen
-
Thread
Sind Sie sicher Abfrage, Usart, Atmega32
Hast du auch vorher PC7 auf PortC mit [c] DDRC = (1<<PC7) als Ausgang definiert? [/c] Versuch weiter mit der LED zu debuggen. Verschiebe das toggeln der LED zum Beispiel hier hin: [c] if (strcmp (uart_string, "y" )==0) { PORTC ^= (1<<PC7); uart_string[0] = '\0'; uart_schreibe_string("Daten geloescht"); } [/c] Du musst erstmal herausfinden, wo etwas schief läuft. Dann kann man sehen
-
Thread
Bitte um Prüfung meines C-Codes
sieht die Hardware aus? Funktioniert die? Hast du Pulse am uC-Pin? Im Code werden keine Pullups am PortC eingeschlatet. Hast du externe Pullups?
Es geht. Danke nochmal an euch :)
-
Thread
ds18b20 ausgabe in temeratur umwandeln
"m8def.dat" $crystal = 16000000 $baud = 2400 $hwstack = 100 $swstack = 100 Config 1wire = Portc.5 Dim Sep(9) As Byte Dim Ar(8) As Byte Dim I As Byte 1wreset 1wwrite &H33 ' ROM-Befehl zum lesen der SerienNr Ar(1) = 1wread(8)
(2)) Temperature = temperature / 16 Print Temperature End If Loop End [/code] so geht es ... trotzdem danke
-
Thread
ATmega 1284P PA4 geht nicht
/ waiting PORTC &= ~(1 << PC7); // set PC7 low PORTA &= ~((1 << PA3) | (1 << PA4)); // set PA3 and PA4 low for (counter1=0;counter1<255;counter1++){for(counter2=0;counter2<255;counter2++)
dann hat sich entweder der Thread- Ersteller in den Tod gestürzt ..... ..... oder ATmega 1284P geht jetzt *nicht nicht*.
-
Thread
#defines in Schleifen verwenden (mit laufender Variable)
PIN PINB #define BM_3_BIT 1 //Eingang 4 #define BM_4_DDR DDRC #define BM_4_PORT PORTC #define BM_4_PIN PINC #define BM_4_BIT 1 [/c] in der .c file möchte ich die Eingänge setzen: z.B Eingang 1: [c] BM_1_DDR &= ~(1 << BM_1_BIT); BM_1_PORT |= (1<<BM_1_BIT); [/c] Jetzt
Fragestellungen immer vor Augen führen. Und damit ist klar, daß das, was Du erreichen willst, so nicht geht.
-
Thread
PLL Startprobleme beim ATXmega128A1U
15:23:26 */ #include <avr/io.h> #include "clksys_driver.h" int main(void) { PORTC.DIR=PIN7_bm; // PORTC.OUT=PIN7_bm; // PORTCFG.CLKEVOUT = PORTCFG_CLKOUT_PC7_gc; _delay_ms(10000); OSC_XOSCCTRL = OSC_XOSCSEL_XTAL_16KCLK_gc | OSC_FRQRANGE
andere Picofarad dazu kommt. Hast du keinen Zugriff auf eine Heißluftstation zum Auslöten? Damit geht es wirklich fix.
-
Thread
Multitasking
PIND #define KEY0 0 #define LED_DDR DDRC #define LED_PORT PORTC #define LED0 0 volatile uint8_t flag_1ms; uint8_t taste_lesen(void) { if (KEY_PIN & (1<<KEY0)) return 1; else return 0; } void led_blinken(uint8_t taste) {
@ Klaus Niedzwiedz (niedzwiedz) >Bingo, wenn ich beide Sicherheitsprüfungen auskommentiere, geht es auch >mit 1 ms ! Das verstehe ich allerdings nicht, denn nach meinem >Verständnis unterbricht der Timer doch die LCD-Routine Sicher, denn es ist ja eine ISR. >und der >Programmablauf
-
Thread
avr asm: interrupt int0 löst bei fallender flanke nicht aus
am µC auf Masse ziehe, dann sollte nach meinem Wissen der INT0-INTERRUPT ausgeführt werden. Die an portC angeschlossene LED bleibt jedoch aus. Was mache ich falsch? Gruß ckrex
0x0000 rjmp reset .org 0x0002 rjmp Int0_Handler .org 0x0004 rjmp Int1_Handler denn gehts auch schau mal ins Datenblatt rjmp ist -2kbyte zurück und +2kbyte vorwärts jmp ist bis 4Mbyte Sprungweite
-
Thread
Probleme mit AVR Frequenzmessung
// PC5=out, PC4=out, PC3=out, PC2=out, Display DB7-DB4 // PC1=in, PC0=in, Mode2 und Mode1 PORTC |= (1 << PC0); // Methode F (0x01) DDRB |= (1 << DDB0) | (1 << DDB1) | (1 << DDB2) | (1 << DDB3) | (1 << DDB4) | (1 << DDB5) | (1 << DDB6) | (1 << DDB7); // PB0=out, PB1=out, PB2=out,
Frequenz stimmt nicht ganz, weil die Berechnung der Frequenz und Ausgabe einige Zeit benötigt. Damit geht eine Teil der 1 s Messzeit zum Zählen verloren. Umgehen ließe sich dieses Problem, indem der Zähler nicht zurück gesetzt wird, sondern die Differenz zum letzten Zählerstand berechnet wird. Ein
-
Thread
Ausgänge gegenseitig verriegeln
Andreas! Danke für deine Hilfe! Ich habe den Umfang nicht genau erwähnt, da es mir um die Logik geht. Gerne formuliere ich die Anwendung besser aus: Hardware gibt es noch nicht 8 bistabile Relais mit single coil Relais haben 2 Schließer. Einmal Last, einmal Rückmeldung und LED. Verriegelung
FEEDBACK7 6 #define FEEDBACK8 7 #define LED_DDR DDRC #define LED_PORT PORTC #define LED_PINS PINC #define LED_RUNNING 0 #define RELAY_DDR DDRD #define RELAY_PORT PORTD #define RELAY_PINS PIND #define RELAY1 0 #define RELAY2
-
Thread
AVR: µC geht nicht in den Idle-Mode
Ich weiß, dass es nachher noch weiter geht! Aber ich wollte die maximal erreichbare Genauigkeit, da ich mit dem Oszi alles kontrolliere. Aber darum geht es ja jetzt nicht. Ich möchte wissen, ob jemand einen Tipp hat, warum mein µC nicht in den Idle-Mode geht bzw. was ich vergessen oder falsch gemacht habe!
-
Thread
Die ersten Versuche in C
anschaust, wird dir auffallen, das die Fallunterscheidung sich nur darin unterscheidet, das du in PORTC ein anderes Muster lädst: [c] TCNT0=128; // Preload für Timer Interrupt 128 = 1ms switch(in) { case0: // Digit 0 { PORTC = LED_off; // Alle LEDs aus SPDR =
RCK); // RCK Low PORTB |= (1<<RCK); // RCK High - Daten werden in Register Ÿbernommen PORTC = ebene_0; // LEDs fŸr ebene 0 an break; } [/c] Du könntest also den Grossteil der Routinen gemeinsam machen und nur das Setzen des PORTC dann mit switch-case machen. Ausserdem ist
-
Thread
XPlained USART zu USB-Buchse
den anderen Sachen liegt. Vielleicht hat das schon mal jemand gemacht und kann mir sagen wie es geht und welcher Datenlogger empfehlenswert ist. Viele Grüße David
Es ist sehr sehr kurios. Manchmal gehts, manchmal nicht und das bei gleichen Einstellungen. Im Moment geht wieder mal gar nichts ^^ Ich probier mal ein bissl weiter rum.
-
Thread
Anfänger in C und welcher PIC (evtl. uno32) ist geeignet ?
Warum nicht dabei bleiben was du kannst? Zumindest wenn es dir nur um die Umsetzung eines Projektes geht.
Wie gesagt würde ich das nicht unterschreiben. Zumindest wenn es um wirklich hilfreiche Antworten geht. Be Ti schrieb im Beitrag #3923000: > Es fehlt mir halt sowohl die Erfahrung mit > C-Compilern, als auch die Vorstellung davon, was da so alles geht. Ansich kann man sagen, das alles geht,
-
Thread
Warum kann nicht alles so einfach wie Arduino sein?
case 6: PORTB |= (1 << PB6); break;\ case 7: PORTB |= (1 << PB7); break;\ \ case 8: PORTC |= (1 << PC0); break;\ case 9: PORTC |= (1 << PC1); break;\ case 10: PORTC |= (1 << PC2); break;\ case 11: PORTC |= (1 << PC3); break;\ case 12: PORTC |= (1 << PC4); break
case 6: PORTB &= ~(1 << PB6); break;\ case 7: PORTB &= ~(1 << PB7); break;\ \ case 8: PORTC &= ~(1 << PC0); break;\ case 9: PORTC &= ~(1 << PC1); break;\ case 10: PORTC &= ~(1 << PC2); break;\ case 11: PORTC &= ~(1 << PC3); break;\ case 12: PORTC &= ~(1 << PC4)
-
Thread
PIC16F einzelne Portpins ein/auslesen
Tja, einfach geht nur ein MOVF für ganze Bytes und ein BTFSC für einzelne Bits. 3 Bits einlesen - das musst du mit ANDWF und RLF zusammenbasteln.
einzelne Pins an verschiedenen Ports ausgeben. ich habe mir das so vorgestellt: COMF PORTC, w ; invertiertes Einlesen der Schalter ins w-Register MOVWF zelle1 ; Kopieren vom w-Register in die zelle1 BTFSC zelle1, 0 ; Abfragen, ob zelle1 bit 0 high oder low
-
Thread
Hilfe bei Programmierung in Mplab
hinbekommen" ? Vorausgesetzt, man ist nicht am Leistungslimit und muss Ressourcen sparen, wo es nur geht.
******************************************************** ;## 7 Segmentanzeige #define A_SEG PORTC,0 #define B_SEG PORTC,1 #define C_SEG PORTC,2 #define D_SEG PORTC,3 #define E_SEG PORTC,4 #define F_SEG PORTC,5 #define G_SEG PORTA,4 #define DP_SEG PORTB,4 #define
-
Thread
ATMEGA32 PORTC
Hallo, Bei ATMEGA32 warum kann ich beim PORTC verschiedene Ausgänge nicht ein und ausschalten? danke im voraus
JTAG in den Fuses deaktivieren, dann geht's auch.. Grüße Bernhard
-
Thread
AVR-Net-IO und Grafik-lcd möglich?
bis 7 (PORTA4:7) verfügbar, diese kann man auch als normale IOs benutzen. An der DSUB25 liegt PortC und ADC 0-3 (PortA0:3) An dem Ext-Anschluss sind PortB0,3 und PortD3:7 Die SPI-Schnittstelle (PortB5:7) musst du dir am ISP-Anschluss abgreifen. Denn Ethernetchip kannst du auch rausnehmen wenn
bekomm Verrätst du uns, was für ein Display das ist? Dann kann man ins Datenblatt sehen und dann geht es weiter.
-
Thread
Webserverproblem Xmega
aufhängt bwz. einfriert, wenn ich den Ethernetcontroller, welcher ein ENC28J60 ist und per SPI an PORTC des Xmegas angeschlossen ist, mit einem Netzwerkkabel mit dem LAN-Port meines Notebooks verbinde. Das Problem habe ich so eingegrenzt, dass dann der Interrupt des ENCs aktiv wird und da das Programm
hängen bleibt? Weil die While-Schleife bei einem aktiven Interrupt auch noch keinen Time-Out hat, geht's nicht weiter im Programm. Könnte das mit einer falschen Initialisierung des ENCs zu tun haben oder wie betreibt man sonst einen Webserver?
-
Thread
DMX Lib für Xmega bekannt?
eine Idee wie man den XMega dazu bewegen kann die Datenrate des UART zur Laufzeit zu änder? Oder geht das beim XMega nicht mehr? Wobei mir kommt gerade eine Idee, geht das ändern der Datenrate vielleicht nur während einer ISR? Wie dem auch sei, hier mal der Quelltext für den DMX Output. Im Hautprogramm
void usart_init(void){ //configure usart // Pin from USARTC0 TxD C3 set to output PORTC.DIRSET = PIN3_bm; // Pin from USARTC0 TxD C3 to high PORTC.OUTSET = PIN3_bm; // Asynchronous Modus USARTC0.CTRLC = (USARTC0.CTRLC & ~USART_CMODE_gm ) | USART_CMODE_ASYNCHRONOUS_gc;
-
Thread
Atmega328p wacht nicht auf, wo steckt der Fehler?
{ set_sleep_mode(SLEEP_MODE_PWR_SAVE); sleep_mode(); PORTC |= (1<<PC4); _delay_ms(1); while(!(PINC &= (1<<PINC3))) { PORTC |= (1<<PC5); } PORTC &= ~(1<<PC5); PORTC &= ~(1<<PC4); while(flag==1)
Schlafmodus gehen. Warum dauerhaft die Ports setzen? [c] while(!(PINC &= (1<<PINC3))) { PORTC |= (1<<PC5); } PORTC &= ~(1<<PC5); PORTC &= ~(1<<PC4); while(flag==1) { PORTC|= (1<<PC5); }[/c]
-
Thread
ATMega32 und das STK500
Ich kann mein uC Flashen und Programmieren, das ist kein Problem! ABER sobald es um Bedingungen geht wie z.B. eine IF abfrage oder Switch-Case etc. Funktioniert es nicht bzw. er macht völlig eigene Sachen die mit absolut unerklärlich sind. Ein einfaches Programm zur erklärung if (PINB==1)
Falls ja, trage ihn wieder heim und stecke ihn, ohne etwas zu verändern, zu Hause in Dein STK500. Geht es dann dort auch, hat das AVR-Studio 6.2 eine Macke. MfG Paul
-
Thread
Xmega Pin Zustand effizient spiegeln
Flanke ein Durchlauf des DMA_CH0 Interrupts EVSYS.CH0MUX = EVSYS_CHMUX_PORTC_PIN2_gc; // Pin auswählen EVSYS.CH0CTRL = EVSYS_DIGFILT_8SAMPLES_gc; // Ausgangspins vorbereiten und richtigen Pegel ausgeben PORTC.DIRSET = PIN3_bm | PIN5_bm; if (PORTC.IN & Pin2_bm) PORTC.OUTSET = PIN3_bm | PIN5_bm; else PORTC.OUTCLR = PIN3_bm | PIN5_bm; // reset DMA controller DMA.CTRL = 0; DMA.CTRL = DMA_RESET_bm; while ((DMA.CTRL & DMA_RESET_bm) != 0); // configure
-
Thread
Einlesen von Tastern mit Entprellheader
[c] #define TASTERPORT PORTC #define TASTERBIT PINC5 [/c] von einem Port liest man über das PINx Register ein und nicht über das PORTx Register. Code nicht einfach gedankenlos übernehmen. Die Zeile hier [c] if(zustand
if Ausdrücke? PS: Hier siehst Du, wie einfach es ist, Text auf dem PDF heraus zu kopieren. Das geht einfach so, genau wie bei einer Textdatei.