-
Thread
CCD linear sensor
und man kann seine Temperatur über den elektrischen Widerstand einigermaßen abschätzen, aber genau geht anders. Andere Strahler, für die der Bastler ein Thermometer hat, werden nicht heiß genug um nennenswerte Mengen kurzwelligen Lichts zu emittieren, und wie schwarz sie in der Gluthitze sind, weiß man
)ROG..ROG..Auslesung(400ms)..ROG Oder kan man zuerst Sensor belichten lassen und dann Auslesen geht das auch? Wo kann man das genauer nachlesen? Was bedeutet Integrationzeit ist das nicht Belichtungzeit?
-
Thread
Atmega8 Encoder + USB HID spinnt manchmal
PORTB = 0xff; /* activate all pull-ups */ DDRB = 0; /* all pins input */ PORTC = 0xff; /* activate all pull-ups */ DDRC = 0; /* all pins input */ PORTD = 0xfa; /* 1111 1010 bin: activate pull-ups except on USB lines */ DDRD = 0x07; /* 0000 0111 bin
Arduino-IDE ein Nobrainer und man kann sich auf die mechanische Umsetzung konzentrieren. Genauso einfach geht auch fast alles andere USB-HID-inputmässig. Aber ich will niemand davon abbringen ein vorhandenes Vusb zum laufen zu bringen! Wollte nur eine mögliche Alternative aufzeigen die ich für etwas Ähnliches
-
Thread
USART wird langsamer und verliert Daten
Es geht also nur ums Durchreichen ? Bei gleicher Baudrate ? Dann braucht man nicht mal ein FIFO, sondern nur ein Register.
Sender 2 Stoppbits einstellen und bei allen anderen jedoch 1 Stopbit. Bei bidirektionaler Übertragung geht das jedoch nicht.
-
Thread
Wieder einmal Temperaturmessung mittels PT1000.
Hallo Forum, es geht wieder einmal um Temperaturmessung mittels PT1000. Ich möchte mit dem PT1000 Temperaturen zwischen +70° und +400° C messen. Zur Auswertung habe ich einen Raspberry PI zur Verfügung. Welche Schaltung
Dysplay zeigt mir keine Werte an. Tja, kürze das Programm bis nur config lcdpin = pin , db4 = portc.2 , db5 = portc.3 , db6 = portc.4 , db7 = portc.5 , E = portc.1 , Rs = portc.0 config Lcd = 20 * 4 Cls Cursor off Locate 1 , 1 Lcd "Test " stehen bleibt. Wenn du dann immer noch nichts
-
Thread
PIC16F690 AN8 bis AN11 nicht nutzbar
Falschen Pic eingestellt? Georg Keller schrieb im Beitrag #4139820: > Bei den unteren AD Ports geht es wie gewünscht ....
PIE1 = 0b00000000; // Disable all PERIPHERAL Interrupts } void Hardware_portc_test (void) { // // Basic Setup der HW // PORTC = 0; __delay_ms(500); PORTCbits.RC0 = 1; __delay_ms(500); PORTCbits.RC1 = 1; __delay_ms(500); PORTCbits.RC4
-
Thread
1Mbit I2C Eeprom - nur lesen möglich. Tomaten auf den Augen.
$framesize = 32 $swstack = 32 $hwstack = 32 $baud = 115200 $crystal = 20e6 Config 1wire = Portc.7 $lib "i2c_twi.lbx" Config Scl = Portc.0 'Ports fuer IIC-Bus Config Sda = Portc.1 Config Twi = 100000 ' Takt 100kHz
Alles klar, jetzt gehts. Hab mir schon gedacht, dass ich da irgendwo was übersehen habe.
-
Thread
ATmega 1284p Port C
Codebeispiel: [c] int main(void){ pwm_init(); while(1){ DDRC = 0b00000000; PORTC = 0b00000000; _delay_ms(1); DDRC = 0b00111111; PORTC = 0b00000000; _delay_ms(1); DDRC = 0b00111111; PORTC = 0b00111111; _delay_ms(1); } } [/c] vielen Dank
Die 1k-Widerstände einfach durch 0 Ohm ersetzen geht nicht. Dann funktioniert sein Steuer-Patent, die PWM zu den einzelnen Stufen abschalten zu können nicht mehr.
-
Thread
ATXMEGA Timer Interrupt ISR Problem
Wo genau in deinem code setzt du portc?
wurde > nach der Service Routine vom Controller selbst nicht wirklich gelöscht!! Das Schei..ding geht ja gar nicht. Tausch den mal aus.
-
Thread
Mega32, LCD HD44780 will nicht.
1000000 Config Lcdpin = Pin , Db4 = Porta.7 , Db5 = Porta.6 , Db6 = Porta.5 , Db7 = Porta.4 , E = Portc.6 , Rs = Portc.7 Config Lcd = 16 * 2 Cls Lcd "Hallo" End [/code] RW ist auf GND gelegt, hab Mehrmals Belegung mit Multimeter durchgecheckt, stimmt soweit. An einen ATMega8 funktioniert
gleich > aussehen. fast > Datenleitung getauscht und läuft! genau einfach tauschen - dann geht es 1a. Gast ^^
-
Thread
Mikrocontroller kommt aus dem Takt ;D
0b00001111; DDRB = 0b00000110; DDRD = 0b00000010; CLEAR_BIT(PORTB,2); //Output Enable SET_BIT(PORTC,3); //SDI //Ebenen CLEAR_BIT(PORTC,2); CLEAR_BIT(PORTC,1); CLEAR_BIT(PORTC,0); /** Hauptschleife **/ for(;;) { for (int i= 0; i<1;i++) { SET_BIT(PORTC,3); //SDI
Atmel AVR ISPmk|| ist der Programmer... Ja ich frage mich so vieles. Mit dem internen Takt gehts nicht, mit nem Quarz gehts nicht, nur wenn ich einen externen Generator anschliesse geht es, dann aber auch nur wenn ich vorher den Programmer wieder rausziehe..
-
Thread
mit µC Sinus erzeugen + Amplitudenmodulation
langsamer ist. Bit 0..7 sind auf PortA0 .. PortA7 Bit 8..15 sind auf PortC7 .. PortC0 mit PORTC = byte_1; geht es ja nicht, da die 8bit verdreht sind... Hier mal mein Code: uint8_t sinus_array[128] = {128,134,140,146,152,158,165,170, 176,182,188,193,198,203,208,213, 218,222,226,230,234,237,240,243
if (byte_1 & (0x01 << 7)) { // Pin auf High PORTC |= (1<<PC0); } else { // pin auf Low PORTC &=~ (1<<PC0); } }
-
Thread
Free running mode ADC
Wertes von ADCresult gemäß vorgegebener Tabelle setzen if((ADCresult>=0) && (ADCresult<128)){ PORTC &= ~(1<<PC1); PORTC &= ~(1<<PC4); PORTC &= ~(1<<PC5); } else if((ADCresult>127) && (ADCresult<512)){ PORTC &= ~(1<<PC1); PORTC &= ~(1<<PC4); PORTC |= (1<<PC5); } else if((ADCresult>511) && (ADCresult<769)){ PORTC &= ~(1<<PC1); PORTC |= (1<<PC4); PORTC |= (1<<PC5); } else if((ADCresult>768) && (ADCresult<1024)){ PORTC |= (1<<PC1); PORTC |= (1<<PC4); PORTC |= (1<<PC5);
-
Thread
RGB LED 3x3x3
glauben daß das Problem ist bei R42 zu suchen ist oder im Code Zeile 28 ? Aber klar, wenn nix geht 100nF
0b00001111; DDRB = 0b00000110; DDRD = 0b00000010; CLEAR_BIT(PORTB,2); //Output Enable SET_BIT(PORTC,3); //SDI //Ebenen SET_BIT(PORTC,2); SET_BIT(PORTC,1); CLEAR_BIT(PORTC,0); /** Hauptschleife **/ while(true) { //CLK CLEAR_BIT(PORTB,1); _delay_ms(1000);
-
Thread
Zugriff auf Ports über einen Pointer od Ähnlichem für PIC18F (nicht Bit Addressierbar)
PORTE; bitmask = 1 << 6; case 11: port_ptr = &PORTE; bitmask = 1 << 7; case 12: port_ptr = &PORTC; bitmask = 1 << 4; case 13: port_ptr = &PORTC; bitmask = 1 << 5; case 14: port_ptr = &PORTC; bitmask = 1 << 6; case 15: port_ptr = &PORTC; bitmask = 1 << 7; case 16: port_ptr =
unsigned char *port; unsigned char mask; }pin_pointer; const pin_pointer pins[4] = { &PORTC, 1 << 0, // PORTC pin 0 RC0 &PORTC, 1 << 1, // PORTC pin 1 RC1 &PORTC, 1 << 2, // PORTC pin 2 RC2 &PORTC, 1 << 3, // PORTC pin 3 RC3 ... etc...
-
Thread
Interne Pulldown widerstände?
old_key = r22 .def new_key = r23 //Defines .equ XTAL = 4000000 .equ DISPLAY1_PORT = PORTC .equ DISPLAY1_PIN_RS = 4 .equ DISPLAY1_PIN_E = 5 .equ DISPLAY2_PORT = PORTD .equ DISPLAY2_PIN_RS = 4 .equ DISPLAY2_PIN_E = 5 //Datenrichtung Portbelegung //PORTA = ADC ldi temp1, 0x00
Unwichtige Funktion welche berechnungen ergebnisse im SRAM speichert verändert keine Register out PORTC, menu_item//Dient zum Debuggen des Timers in temp1, PINB out PORTD, temp1 // Debug info von PINB Ohne ein Taster zu drücken steht in temp1 0x00 aber wieso wenn doch die PullUp Widerstände an sind
-
Thread
UV-Laserdrucker II
ZweiSchere schrieb im Beitrag #4345732: > Es geht um die BELICHTUNG. Es geht um die ZEIT für die BELICHTUNG ... wollte ich schreiben ...
hab 32Bit, geht aber leider auch nicht. trotzdem danke Gruß Klaus
-
Thread
µController programmierung
auf Ausgang LEDs /*PORTC.OUT &= ~ PIN3_bm; //PORTC.3 auf high WW-LEDs->aus*/ /*PORTC.OUT &= ~ PIN2_bm; //PORTC.2 auf high KW-LEDs->aus*/ /*System ON/OFF*/ PORTC.DIR |= PIN1_bm; //PORTC.1 auf Ausgang ON/OFF
160ms > 160msx3 = 480ms > kommt ungefähr hin... habe das bei mir geändert-> Tastenerkennung geht jetzt gut aber es wird immer wieder aus der Tastenabfrage rausgesprungen d.h die LEDs gehen kurz an und dann wieder aus... z.B. wird das [c] switch (anzahl) { case 1: PORTC.OUT
-
Thread
Dmx mit Bascom generiert
X = 0 Dmx_werte(1) = 255 Do If X = 0 Then Portc.3 = 1 Portc.4 = 1 Toggle Portc.3 'Reset Waitus 88 Portb.0 = 1 Waitms 10 Print 0 Waitus 20
senden End If If Sendezaehler > 24 Then Gosub Senden '500ms Sendetakt Portc.1 = 0 Power Idle Portc.1 = 1 Loop Senden: 'Break Ausgang = 0 Portc.0 = 1 For I = 0 To 60 nop Next I Portc.0 = 0 Ausgang = 1 For I = 0 To 20
-
Thread
LED-Treiber Ansteuern Software
takt werden. da ich den toggle befehl nutze brauche ich nur ein delay [c] _delay_ms(200); PORTC.OUTTGL = 0x0C; /*Taste POL 1 mal gedrückt -> POL an 50%*/ [/] mir geht es ehr um die Grundidee kann man das mit einer for-schleife realisieren so wie ich mir das oben gedacht habe, sodass ich ein
/*PORTC.4 auf low UV-LEDs->aus*/ //PORTC.OUT &= ~ PIN3_bm; /*PORTC.3 auf high WW-LEDs->aus*/ //PORTC.OUT &= ~ PIN2_bm; /*PORTC.2 auf high KW-LEDs->aus*/ PORTC.OUT |= PIN3_bm; /*PORTC.3 auf high WW-LEDs
-
Thread
LCD_Modul_TG12864B_03
Jörg P. schrieb im Beitrag #4097958: > wenn ich als Datenport PortC und als Command die PA0-PA5 nehme. -----------------------------^----------------------^---^-------- Hä? Erst mal Programm und Schaltplan posten.
Du etwas mehr in dem Code ändern (und außerdem den Code verstehen lernen). Schau mal, ob Du auf PortC JTAG aktiviert hast.
-
Thread
Tasterabfrage xmega8E
/*PORTC.2 auf low UV-LEDs->aus*/ PORTC.OUT &= ~ PIN3_bm; /*PORTC.3 auf high WW-LEDs->aus*/ PORTC.OUT &= ~ PIN4_bm; /*PORTC.4 auf high KW-LEDs->aus*/ //PORTC.OUT |= PIN3_bm; /*PORTC.3 auf high WW-LEDs->an 100%*/ //PORTC.OUT |= PIN4_bm; /*PORTC.4 auf high KW-LEDs->an 100%*/ PORTC.DIR = 0x1C; /*PORTC auf Ausgang LEDs*/ /*System ON/OFF*/ PORTC.DIR |= PIN1_bm; /*PORTC.1 auf Ausgang ON/OFF*/ PORTC.OUT
-
Thread
Dumme Frage zum "C" mit AVR's
Christian J. schrieb im Beitrag #4096031: > Es geht also nicht :-( Doch: https://www.mikrocontroller.net/topic/364313#4095947 Du musst nur noch eine [c]#define LED5 BF_PORTB.portb5 // Oder welcher Pin auch immer[/c] machen und kannst dann in deinem
Makros à la: [c]#define POWER_LED_PORT PORTB #define POWER_LED_PIN 5 #define STATUS_LED_PORT PORTC #define STATUS_LED_PIN 1[/c]
-
Thread
Nur Errors vom siemens TC35
Porta.4 Relais6 Alias Porta.5 Relais7 Alias Porta.6 Relais8 Alias Porta.7 Porta = 0 Config Portc.0 = Input ' rauf Config Portc.1 = Input ' runter Config Portc.2 = Input ' O K
Declare Sub Sms_auswerten() Declare Sub Sende_rueckmeldung() ' ----- Voreinstellungen ------- Portc.0 = 1 ' Taster Portc.1 = 1 ' Taster Portc.2 = 1 ' Taster
-
Thread
AVR 8bit auch für größere Projekte?
die dicken C-Bücher- wenn man denn schon die > Erfahrung gemacht hat: Mit dem einfachen AVR & Asm gehts ja genauso! Wer einmal begriffen hat, wie ein Hammer funktioniert, für den sehen alle Probleme plötzlich wie ein Nagel aus. > Mit dem einfachen AVR & Asm gehts ja genauso! Solange du dir deine
drittens... najo, warum flog der Mensch auf'n Mond? Weil der Mond da ist und irgendwer gesagt hat "geht doch eh nicht".
-
Thread
html in c array
=\"B\" %PORTC1>\r\n" "<span class=\"Stil2\">Port C Pin 1</span></p>\r\n" "<p><input type=\"checkbox\" name=\"OUT\" value=\"C\" %PORTC2>\r\n" "<span class=\"Stil2\">Port C Pin 2</span></p>\r\n" "<p><input type=\"checkbox\" name=\"OUT\" value=\"D\" %PORTC3>\r\n" "<span class=\"Stil2\">Port C Pin 3</span></p>\r\n" "<p><input type=\"checkbox\" name=\"OUT\" value=\"E\" %PORTC4>\r\n" "<span class=\"Stil2\">Port C Pin 4</span></
-
Thread
DCF77-Programm-Multitaskingproblem
.. else { dcf_sync(); } } else { dcf_sync(); } } [/c] geht schon mal gar nicht. So eine Rekursion kannst du am PC machen, auf dem du Megabyteweise Speicher hast. Aber auf einem kleinen µC mit seinem eher bescheidenem SRAM kannst du das nicht machen, ohne dass
Zwischenzeit gelernt. Muss er eigentlich, das Projekt ist ja dann doch schon recht alt). Aber so gehts nicht. Dieser Code ist ziemlich mies. und du solltest lernen, dass du dich nicht an Projekte halten sollst, in denen im Eröffnungsposting steht, dass der Autor selbst Anfänger ist. Das einzige was
-
Thread
Auslesung von DS1307 RTC
PB2 #define PIN_SPI_SCK 1 // PB1 #define PIN_SPI_SS 0 // PB0 #define PORT_SPI_CS PORTC #define DDR_SPI_CS DDRC #define PIN_SPI_CS1 7 // PC7 #define PIN_SPI_CS2 6 // PC6 #define PIN_SPI_CS3 5 // PC5 //LED 1-3 #define PORT_LED PORTC #define DDR_LED
psystemtimetoken[2]); // Monat ... [/c] sparen. Da steht 2 mal das gleiche. Die Zuweisung geht an eine Variable die 'month' heisst. Da brauchst du nicht dazuschreiben, dass es sich um das Monat handelt. Das kann jeder der Lesen kann auch so sehen. Genauso wie auch klar ist, was eine Funktion
-
Thread
Mehrere Ausgänge über Alias zuasmmenfügen
Guten Morgen, Ich würde gerne über einen Alias mehrer Ausgänge zusammenfügen.. Geht das so? $regfile = "m1284def.dat" $Crystal=4000000 $hwstack=40 $swstack=16 $framesize=32 Dim Zaehler As Word Config Porta = Output Config Portb = Output Config Portc = Output Config
D3 Alias Porta.3 E1 Alias Porta.4 E2 Alias Porta.5 E3 Alias Porta.6 F1 Alias Porta.7 F2 Alias Portc.7 F3 Alias Portc.6 G1 Alias Portc.5 G2 Alias Portc.4 G3 Alias Portc.3 H1 Alias Portc.2 H2 Alias Portc.1 H3 Alias Portc.0 I1 Alias Portd.7 I2 Alias Portd.6 I3 Alias Portd.5 Farbe1 Alias
-
Thread
Empfangen über SPI von ADC-Daten
Trailing-Edge } uint16_t SPI_receive_ADC() { cli(); // Interrupts deaktivieren PORTC |= (1<<PC0); // ADC Enable aus PORTC &= ~(1<<PC0); // Enable-Pin für ADC aktivieren uint16_t averageData = 0; averageData = (SPI_receive_byte()<<8); averageData |= SPI_receive_byte(); PORTC |= (1<<PC0); // ADC Enable aus sei(); // Interrupts aktivieren return averageData; } uint8_t SPI_receive_byte() // Byte empfangen { SPDR = 0x00; // Wert in Buffer schreiben
-
Thread
A t m e g a 88 wird nicht mehr erkannt
ldi r17, 0x00 ende: out PORTC, r16 out PORTC, r17 rjmp ende [/asm]
die 8 MHz nicht, nötig wäre ein Quarz über 10 MHz. Alternativ könnte man den ATmega8 mit out PORTC, r16 out PORTC, r17 vollpacken plus Rücksprung vom Ende an den Anfang und mehrmals versuchen, die L-fuse des 88 umzustellen. Wobei allerdings dieses > Auf dem Atmega88 ist ja auch noch ein
-
Thread
Byte aus Einzelbits zusammenstellen / wie debuggen? (PIC18 und XC8)
kannst du nicht gleich [c] char busStatus = PORTC; [/c] schreiben?
Das wäre natürlich am schönsten, aber leider sind die Einzelbits auf PortA und PortC verteilt.
-
Thread
SPI MCP23S09
BANKSEL SSPSTAT movlw B'11000000' movwf SSPSTAT Programm ; bcf PORTC,2 BANKSEL PIE1 bsf PIE1,SSPIE BANKSEL PORTA bcf PORTA,0 BANKSEL SSPBUF movlw B'00101000' movwf SSPBUF movlw SSPBUF movwf
da, wohingegen LATx-Register zum SCHREIBEN verwendet werden! PIC18-Grundlagen! Was du da machst, geht nur bei der PIC10-, PIC12- und PIC16-Familie.
-
Thread
Frage zur Bitmanipulation
einfacher >schreiben kann. Nein, nicht bei avr gcc. >PORTx.n = 0; >//oder >PORTx.n = 1; Geht nicht. Der AVR hat keinen bitaddressierbaren Speicher und avr gcc bietet auch keine Makros dafür.
schreiben kann. > > Nein, nicht bei avr gcc. > >>PORTx.n = 0; >>//oder >>PORTx.n = 1; > > Geht nicht. Der AVR hat keinen bitaddressierbaren Speicher und avr gcc > bietet auch keine Makros dafür. Aber zumindest Bit-Adressierbaren IO-Bereich hat der AVR durch die Opcodes: SBI + CBI Intern
-
Thread
Schiberegister 74HC595 wird sehr heiß
parallel zur Vcc und GND, sondern GND wird durch den Kondensator durchgeführt (was natürlich nicht geht).
@ oldmax (Gast) >Ok, die Diskussion geht etwas in Richtung ot. Wir leben heute. Alte >Zeiten herbeizusehnen, na gut, ganz frei davon bin ich auch nicht. Es geht nicht um Sehnsucht nach früher, sondern den Zustand von heute! >wie das
-
Thread
xmega Ports schalten
kann man sich den Clock auf einen Pin ausgeben lassen (in diesem Fall Port C, Bit 7): [c] PORTC_DIRSET = 0x80; /* SysClock on bit 7 */ PORTCFG_CLKEVOUT = PORTCFG_CLKOUT_PC7_gc; [/c]
sein, denn sonst kann es passieren, dass der genau in die Sequenz reinhaut und diese somit schief geht!
-
Thread
PWM Tonhöhe und Lautstärke
binary_foo_bin_end - _binary_foo_bin_start; DDRC=0xFF; for (i=0; i<size; i++) { PORTC = pgm_read_byte(&_binary_foo_bin_start[i]); } } [/c] Man muss nur noch das Objektfile dem Linker mitteilen, das geht in den Projektoptionen unter AVR Studio 4.18 so. Project -> Configuration
@ Konrad S. (maybee) >Nicht als Library einbinden. Wie dann? Im AVR Studio geht es.
-
Thread
2 Atmega8 über I²C / TWI verbinden
main (void) { DDRB = 0b00000001; //PB0 = Ausgang PORTB = 0b00000000; // LED aus ! PORTC = 0b00110000; // Pull-Up für TWI an PORTC4 und 5 //TWI als Slave mit Adresse slaveadr starten while(1) { init_twi_slave(SLAVE_ADRESSE); //i2cdatamit Werten füllen
Narkus Schlitz schrieb im Beitrag #4051889: > ............. Wenn das so weiter geht, dann wird das nichts, lieber Knarkus Schwitz
-
Thread
Displayplatine Problem mit SPI DOGL128-6
PORT_LED ^= (1 << PIN_LED3); // LED3 umschalten // TASTER Pins #define PORT_TASTER PORTC #define DDR_TASTER DDRC #define PIN_TASTER_EINGANG PINC #define PIN_TASTER1 7 // PC7 #define PIN_TASTER2 6 // PC6 #define PIN_TASTER3 5 // PC5 #define PIN_TASTER4
Oh mann danke für eure Hilfe das war der Fehler :-) Hab es gerade ausprobiert und siehe da es geht.... das habe ich ganz übersehen! Super dankeschön :-)
-
Thread
Seriell Daten Empfangen
Line); if (get == 1){ //+++++++++++++++++LED TEST+++++++++++++++++// PORTC |= (1<<PC0); // Ausgang auf 1 _delay_ms(500); PORTC |= (1<<PC1); _delay_ms(500); PORTC |= (1<<PC2); _delay_ms(500); PORTC &= ~(1<<PC0); // Ausgang auf 0 _delay_ms(500); PORTC &= ~(1<<PC1); _delay_ms(500); PORTC &= ~(1<<PC2); _delay_ms(500); //+++++++++++++++++LED TEST+++++++++++++++++// } } { } }
-
Thread
Atmeg führt reset ohne Grund durch
gitl bei 20 Mhz //ICR1 = 50; //PWM-Frequenz 5 kHz bei 1 Mhz OCR1A = 0; // PWM auf 0 PORTC |= (1<<PORTC1); } void init_Port(void) //Initialisiert die Ports { DDRD = 0b11110000; // PD4-PD7 als Ausgang } void set_PWM (uint16_t soll, uint16_t max_wert) // Stellt den PWM ein, max_wert
oder gleich 400 Takte Zeit um all das abzuarbeiten, was in deiner Timer-ISR vorkommt. Und das geht sich nun mal nicht aus. Wenn du zur Herstellung eines Werkstücks 5 Stunden brauchst, dann kann sich dein Boss Kopf stellen und sich wünschen du würdest ihm 20 Pro Stunde herstellen. Was nicht möglich
-
Thread
case-Anweisung
Eingänge DDRC &= ~(1<<DDC3); DDRD &= ~(1<<DDD6); //Setzen der Pull-Ups der Eingänge PORTC = (1<<PC3); PORTD = (1<<PD6); //Setzen der Ausgangszustände PORTB |= (1<<PB0) | (1<<PB1); PORTC |= (1<<PC5); } [/c]
@AK Warum einfach, wenn es auch schwierig geht? Schönes Motto du da hast.
-
Thread
Input Capture Atmega16
Auf negative Flanke umschalten setbit(IPC_ISR_flag, timer1_capt_1st_edge); togbit(PORTC, PIN0); } //===================== // capture falling edge else if( ( bit_is_set(IPC_ISR_flag, timer1_capt_1st_edge)) && (!bit_is_set(IPC_ISR_flag, ipc_messure_complete)) )
mal Kardinalfehler Nummero Uno: zuviel auf einmal geschrieben ohne zwischendurch zu testen. Nichts geht und in dem ganzen Wust weiss man nicht wo man mit der Fehlersuche anfangen soll. Alles was man weiss ist, dass ganz hinten am Ende einer längeren Kette von Ereignissen nicht das richtige rauskommt -
-
Thread
EEPROM lesen im Interrupt
Es ist auch egal welche. Und auch in welchem Interrupt. Ich habe immer das selbe Verhalten, dass PORTC abgenullt wird. Alle anderen PORTs bleiben unberührt.
habe ich den Pin invertiert. Es hat alles perfekt funktioniert. Wenn ich allerdings einen Pin am PORTC nehme und die EEPORM-Leseroutine benutze, dann gehts nicht. Der PORTC wird einfach überschrieben.
-
Thread
Atmega128 und UART
ich habe Probleme, mit meinem Atmega128 den UART richtig zu initialisieren. Das einzigste was geht ist, wenn ich vom PC aus eine Taste drücke kann ich diesen Tastendruck über eine LED anzeigen lassen ( pollen ). Wenn ich im Terminalprogramm am PC den Buchstaben a empfangen lassen möchte, kommen nur
delay_ms(1000); TransmitUART0(0x61); } } ISR(USART0_RX_vect) { receivedByte = UDR0; PORTC ^= (1<<PC0); } [/c] Und hier die UARTMethods.h die in die main includiert wird: [c] #ifndef UARTInit #define UARTInit #define EVEN 0 #define ODD 1 #include <math.h> #include <avr/
-
Thread
LCD Dot-Matrix 122x32 - Befehle ok, aber keine Daten
OUT DDRC = 0xFF; //PORTC: OUT PORTC = 0x00; PORTD = 0x00; //Reset PORTC/D PORTC = 0b00010000; //Reset Display _delay_us(100); PORTC = 0b00000000; _delay_us(100); PORTC = 0b00010000; //Reset
PORTD = 0b10101111; En_L; PORTC = 0b00010011; //Write data to controller 1 En_H; PORTD = 0b10101011; //Data En_L; PORTC = 0b00010101; //Write data to controller 2 En_H; PORTD = 0b10101111; //Data
-
Thread
Alle Eingänge in eine uint16_t variable schreiben
verteilen, das der > jeweilige Eingang einem Bit in uint16_t variable zugerodnet ist. Das geht schon mal nicht, da man immer nur 8 Bit "anfassen" kann. Über einen großeren Zeitraum betrachtet ist das möglich.
Hallo. Auf 1x im Sinne von EINEM Befehl geht das nicht. Aber lese doch in einer Funktion alle Ports nacheinander ein. VerUNDe alle benötigen Bits mit 1, damit die nicht benötigen Bits auf 0 sind. Und dann kannst Du mit einer Kombination
-
Thread
Display Ansteuerung - 16 x 4 DotMatrix LCD
----- Ddrc = &B11111111 Ddrd = &B11111111 Config Lcd = 16 * 4 Config Lcdpin = Pin , Db4 = Portc.4 , Db5 = Portc.3 , Db6 = Portc.2 , Db7 = Portc.1 , E = Portc.5 , Rs = Portc.6 Portd.7 = 1 Waitms 20 Locate 2 , 4 Lcd "Hallo" End ------------------------------------------------
.2 , Db7 = Portc.1 , E = Portc.5 , Rs = Portc.6 Portd.7 = 1 '----------------------------------------------------------------------- Waitms 50 Initlcd Cls Cursor On Blink Locate 1 , 1 Lcd "Hallo"
-
Thread
Programm bleibt stehen
( min == 60 ) min = 0; st = min % 24; _delay_ms( 500 ); } } [/c] Das geht ein wenig schneller, so dass wir dann alle LED durch haben :-)
Genau Masse geht dann geschaltet auf den jeweiliegen Eingang vom PORTC
-
Thread
Atmega8 stop nach wenigen sec.
Geheim ist er nicht aber wollte euch nicht unnötig arbeit aufheimsen ;). Start-Knopf festkleben geht nicht hab ich schon versucht :D
das noch auf dem Board. Vss ist auf GND und der /OE ist so eine komische sache. Lass ich ihn offen gehts. Verbinde ich in mit GND oder über einen 10k mit 5V geht nix mehr... Offene PINs finde ich auch immer nicht so super.