-
Thread
AD Wandler am AT90S2313
oder Word, aber wie kann ich das praktisch machen? Mit IF und dann zB %B0010000000000... addieren? Geht es auch schneller? Viele Grüße, Micha
Bascom-Befehlen Low und High auf die zwei Bytes zugreifen, aus denen Deine Variable besteht. Portc = High(Variable) Portc = Low(Variable) ... ob das so sinnvoll ist, hängt von Deiner Hardware ab. Angenommen, ein FT245 wird verwendet und hängt an Portc, musst Du nach jedem Anlegen eines Bytes
-
Thread
AVR-GCC: Welchen Datentypen haben SFRs?
ReadFromPort(PORT) (\ (&PORT==&PORTA) ? (DDRA) :\ ( (&PORT==&PORTB) ? (DDRB) :\ ( (&PORT==&PORTC) ? (DDRC) :\ ( (&PORT==&PORTD) ? (DDRD) :\ 0 ) ) )\ ) [/c] wird zu: [code] uint8_t a = ReadFromPort(PORTC); 1f28: 84 b3 in r24, 0x14 ; 20 1f2a: 08 95
fooPort( A ) = barPort( B ); foobarPort( C ); [/c] jenes da: [c] PORTA = PINB; DDRC = 0x2a; PORTC = 0x2a; [/c]
-
Thread
Maximalfrequenz an PINs ATMEGA8
Ich ziehe meine Frage zurueck. Mit Timer0 geht ja nur der Overflow mode. Laso, bitte mal den code posten.
interrupt [TIM0_OVF] void timer0_ovf_isr(void){ TCNT0=0xFF; PORTC.0=~PORTC.0; } //Timer0 initialization TCCR0=0x03; TCNT0=0xFF;
-
Thread
ACSR - Bit7 setzen
fragen. Danke für die Geduld im Voraus! Hier das Programm: Ergebnis es leuchtet keine LED an PORTC [c] #include<avr/io.h> #define MEINBIT7 7 int main (void) { DDRC=0xff; PORTC=0x00; ACSR |= (1<<MEINBIT7); while(1) { if(bit_is_set(ACSR,MEINBIT7) == 1) { PORTC=0xff;
[c]PORTC |= (ACD<<PC4)[/c] versucht, welche auch nicht weiterhelfen. Der Atmega weigert sich halt, das Bit auf 1 zu schalten. Und ich habe keine Ahnung wieso...
-
Thread
Verständnisfrage zu 62xxx Ram's
anscheinend von Hand an -- AVRs aber haben auch ein Speicherinterface und können das selber machen, und das geht dann komplett ohne Monoflops und ist Größenordnungen schneller als der handgedengelte Speicherzugriff, weil auf der Softwareseite das genauso wie das interne RAM angesprochen werden kann.
Arbeitsregister LDS temp2, Adr1 LDS temp3, Adr2 OUT PortC,temp3 ;Ausgabe A16-19 auf PortC CBI ALH ;Adresslatch verriegeln OUT PortA,temp2 ;Ausgabe A08-A16 auf PortA OUT PortC,temp1 ;Ausgabe A00-A07 auf PortC CBI ALL
-
Thread
__builtin_avr_delay_cycles
tschuldigung, vergessen: mit der backward-compatible version von delay_ms() geht dann das was du machen willst wieder. mfg
Blinken einer LED schreiben: void blink(int16_t interval_ms, int8_t repeat) { DDRC = 0xFF; PORTC = 0xFF; uint8_t i; for (i=0; i<repeat; i++) { PORTC &= 0b11111110; _delay_ms(interval_ms); PORTC |= 0b00000001; _delay_ms(interval_ms); } } der
-
Thread
Brauche Hilfe AT Mega 8 im Raum Bremen evlt. vor Ort
Mach erst mal ein Programmablaufplan/PAP. Dann geht es weiter.
Das hier ist vom AT Mega 8 die Belegung (wenn das so geht) hoffe ich:
-
Thread
Attiny1634 - pb3 input problem
ATtiny1634_io-test.c * */ #include <avr/io.h> // outputs, low-active #define EN_DEBUG_LED PORTC &= ~(1<<PC1); #define DIS_DEBUG_LED PORTC |= (1<<PC1); // inputs, low-active #define INPUT1 !(PINB & 1<<PB3) // geht noch ned #define INPUT2 !(PINC & 1<<PC0) int main(void) {
Hallo Markus, bitte, gerne ;-) Freut mich, dass es jetzt geht! dir auch eine schöne Woche Gruß, Sascha
-
Thread
Bitschubserei / Testerei (kein Osterei) in AVR GCC klappt nicht
Korb_getroffen) { ... } [/c] Makros helfen auch bei Schaltausgängen: [c] #define Sirene_an PORTC |= (1<<PC1) #define Sirene_aus PORTC &= ~(1<<PC1) if ... { Sirene_an; } else { Sirene_aus; [/c] Falls dir solche Makros suspekt sind, schreibe stattdessen Funktionen mit sprechenden
dachte, und denke, dafür ist ein Forum da. - Um zu Fragen. Zur Info: das Modul, um das es hier geht, läuft problemlos.
-
Thread
8051 sbit?
Doch, das geht. C ist aber case-sensitiv, und es ist ein verdammt großer Unterschied, ob Du PORTC oder PortC schreibst. Außerdem muss natürlich die entsprechende Headerdatei eingebunden sein...
alles klar, das geht jetzt! Vielen Dank @ johnny.m
-
Thread
MPLAB X und PICkit 3 - Plötzlich "failed to program device"
Ein PIC ist sehr robust und geht nicht so einfach kaputt. Es wird am Kabel bzw. der Verbindung liegen. Ich weiß nicht wie dein Aufbau genau ausschaut, aber hier wird beschrieben auf was zu achten ist: http://www.sprut.de/electronic
CP_OFF & _MCLRE_ON org 0 Start: movlw ~(1<<T0CS) option MOVLW 0h TRIS PORTC CLRF PORTC BSF PORTC,0 GOTO $ END Erzeugt beim Bauen keine Fehler. Ist es eigentlich normal, dass er manchmal "waiting for unfinished Jobs" anzeigt und dann nach Abbruch
-
Thread
Taktfrequenz im AVR Studio5 angeben
DDB6); //Port Pin DC6 zum Ausgang machen int n =0; while(1) { SETBIT(PORTC, PORTC6); for (n=0; n<10; n++) _delay_ms(100); CLEARBIT(PORTC, PORTC6); for (n=0; n<10; n++) _delay_ms(100); } return(0); } [/c] Die LED am Ausgang sollte
mal mit dem AVRISP MKII nachgeschaut. Es war so. Zurücksetzten konnte ich sie aber nicht. Das geht wohl nur, wenn man gleichzeitig auf den Bootloader verzichtet. Na, ja. Wieder etwas dazugelernt und einen regnerischen Nachmittag erfolgreich verbracht.
-
Thread
mega32 -> mega8: Auswertung des ICP geht nichtmehr
Bastelkiste auf einen Mega8L umziehen, eigentlich ja nicht das Problem dachte ich. Vorher hatte ich an PORTC die 8LEDs haengen und einen HALL-Sensor am ICP vom Mega32, also PD6. Nun wollte ich die LEDs an PORTD haengen und den HALL an PB0. Dafuer muesste ich ja >nur< die Ausgaben der LED-Stellungen
Bilder, Videos und den Source... Vielen dank fuer die Hilfe nochmal, haettet ihr nicht gesagt das geht bei euch haette ich ewig den simulator angeguckt und mich geaergert...
-
Thread
Atmega 16 PWM über Komparator unterbrechen
lcd_string("Akku"); lcd_setcursor( 0, 2); lcd_string("leer!"); _delay_ms(1000); PORTC &= ~(1 << PC0); } return 0; } [/c]
in der Nullposition ist while(1) { if (pwm == unten) { break; } } PORTC |= (1 << PC0); } [/C] kann man ganz leicht machen [C] void Knueppelstellung(void) { while( pwm != unten ) ; PORTC |= (1 << PC0); } [/C] das ist erstens kürzer und zweitens
-
Thread
Probleme beim Compilieren von .c zu .hex
Hallo oli, die Binärausgabe geht auch deutlich einfacher...... wie sieht denn die ".h" - Datei aus? Otto
echte Binäruhr werden, nicht mit BCD's für jede Ziffer). Wäre das dann für die Minuten entsprechend PORTC = ((minute & 0x3f)<1); und für die Stunden PORTC = ((stunde & 0x3f)<1); ? Und diese 3 Zeilen bewirken genau das, was meine 500 Zeilen machen??
-
Thread
Tiefpass-Berechnung für PWM-Glättung
hwstack = 32 $crystal = 16000000 $baud = 9600 Config Lcd = 16 * 2 Config Lcdpin = Pin , Db4 = Portc.2 , Db5 = Portc.3 , Db6 = Portc.4 , Db7 = Portc.5 , E = Portc.1 , Rs = Portc.0 Config Portd.6 = Output Config Portd.5 = Output Config Timer1 = Pwm , Pwm = 8 , Compare A Pwm = Clear Up , Prescale
1 Loop End nun möchte ich aber auch das Tachosignal des Lüfters auslesen, was ja aber nicht geht, solange der mit PWM betrieben wird. Lösung: Einen Tiefpass zwischen transistor und Lüfter (Also ein Widerstand und einen Kondensator in Serie, oder? Doch: wie berechne ich den Kondensator / Widerstand
-
Thread
ATXmega - Pin Eingang oder Ausgang
0x0B; // RES, AWG, D/C, R/W // Initial Value PORTB.OUT = 0x00; // // Initial Value PORTC.DIR = 0x00; // LOGIC PORTC.INT0MASK = 0x01; // PC0 (SDA) will be the interrupt 0 source PORTC.INT1MASK = 0x80; // PC7 (SCK) will be the interrupt 1 source PORTD.DIR = 0x1F
/ VP1 Map to PORTE, VP0 Map to PORTB PORTCFG.VPCTRLB = 0x32; // VP3 Map to PORTD, VP2 Map to PORTC key = 0; [/c] Vielen Dank Fabian
-
Thread
Cosinus Bereichsanpassung
Interrupts****************/ ISR (TIMER1_COMPA_vect) //Zündung erste Halbwelle { PORTC &= ~(1<<PC0); //T1 AN W1 Low Aktiv OCR1B = ALPHAnutz + 400; //ALPHAnutz + Zuendimpulsbreite; } ISR (TIMER1_COMPB_vect) //Löschen aller gezündeten Pins { PORTC
der Triac geht aus, wenn der Strom am Triac 0 wird. Denn kann man nicht selber ausschalten
-
Thread
Studio 4 und my-smart-USB-light
angeschlossen. Nach Definition von stack und den Ports lautet der Anfang meines Programms: sbi PORTC,4 ldi status,0 ;ist als r20 definiert sbi PORTC,1 nn: RJMP nn .... Im debug Mode läuft das Programm bis zum loop nn. Auf dem Chip leuchtet zwar die LED 4 auf, das Programm kommt
das Programm kommt aber nicht bis zu LED 1. Wenn du die Zeile "ldi status,0" auskommentierst, geht es dann? Wenn du die Zeilen "PORTC,4" und "PORTC,1" vertauschst, verscheibt sich dann der Fehler auf die andere LED oder ist es wieder LED 1 die dunkel bleibt? Nächstes mal bitte den ganzen Quelltext
-
Thread
Register miteinander vergleichen - Assambler - my avr
durch: Wenn lt, wird nach TEST gesprungen. Aber was passiert, wenn brlt nicht springt? Genau. Es geht ebenfalls bei TEST weiter. Quintessenz: Egal wie der Test ausgeht, es geht *immer* bei TEST weiter. (Und tu dir selbst einen Gefallen, und rücke die Anweisungen ein. Dann sieht man näcmlich viel
r25 ;Inhalt von Register r25 entkellern pop r24 ;Inhalt von Register r24 entkellern cbi PORTC,4 ;Motor aus rjmp main ;-----------------------------------------------------------------------
-
Thread
switch, include
auf die Vaiable ERR_FLAG. Die LED löst in der if Bedingung nicht aus. Weiß jemand warum nicht? ERR geht soweit ich das bis jetzt getestet habe.Auch die Data stimmt.
Natürlich habe ich unrar, aber das geht nicht mit allen rar-Dateien. Ich habe mich aber auch nie darum gekümmert warum das so ist, weil ich es nicht brauche. Warum soll ich mich mit dem 7845. Kompressionsformat rumplagen, nur weil manche
-
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
Frage zu Fuses beim Atmega16
den rfm12 modulen eine 8 kanal fernsteuerung zu machen. ich habe PortD als eingang der taster und PortC als Ausgang, hab da einfach Leds dran. Jetzt verhält sich der PortC aber an machen Pins nicht so, wie er soll. Hab gehört das das auch mit den Fuse Bits zusammenhängen kann. Sind die so richtig eingestellt
folgenden code und der soll, soweit er das auch beim Atmega8 gemacht hat, die PortD als Eingang und PortC als Ausgang benutzen, also am Sender drückt man PortD und beim Empfänger wird dann eben PortC ausgegeben. Bei PD0 und PD1 is alles ok aber dann gehts los PD2 da blinkt die Led an PC2 nur kurz und mit
-
Thread
Anfängerproblem mit PullUp Widerstand
geschaltet werden. Irgendwie komm ich da nicht wirklich weiter ich weiß nicht warum die Led nicht aus geht wenn ich die Taste betätige, vielleicht kann mir ja jemand weiterhelfen. PORTC soll Ausgang und PORTD Eingang sein. Danke. Hier der Code: ldi r16, 0xFF out DDRC, r16 out
schaltet also die internen Pullups ein ; möglicherweise Schreibfehler sinnvoller z.B. out PORTC,r16 ; alle Pins an Port C HIGH ldi r16, 0x00 out DDRD, r16 ; 0x00 Port D auf Eingang sbi PINC,2 ; ??? Sinnvoll könnte sein sbi PORTC,2 ; um Ausgang PC2 HIGH zu setzen
-
Thread
PIC16F87x läuft nicht richtig
benutze. Problem: Ich hab am PIC einen 4511 (BCD zu 7 Segment Decoder) hängen, und zwar an PORTC Bit 0 - 3, außerdem hängt an PORTC,4 und PORTC,5 je ein NPN Transistor, der für das multiplexen der Anzeige zuständig ist. Wenn ich jetzt probehalber (ohne PIC) einen BCD Wert auf den 4511 gebe
ich den PIC ein, mit einem gan einfachen Programm: =========================== Start bcf PORTC,5 movlw D'7' movwf PORTC bsf PORTC,4 call wait bcf PORTC,4 movlw D'6' movwf PORTC bsf PORTC,5 call wait goto Start =========================== Das sollte
-
Thread
LM75 funktioniert nicht
bei Port-Eingang, ohne externe PullUps gibts Chaos. Probier's mal und wenn's immer noch nicht geht, poste Deinen Code. Sebastian
vom LM75 und gibt es (unter schnöder Mißachtung des 9. Bits - sehr unsauber programmiert ;-) auf PORTC aus, wo ich LEDs angeschlossen habe. Meine Routine ist allerdings auf Port B (0x18) gemünzt, läßt sich aber ja durch 0x15 sehr schnell auf PortC umstellen. Du mußt dann nur die LED-Ausgabe auf einem
-
Thread
AD Wandler nutzen
Taster angeschlossen, die ungedrückt 5V anliegen lassen und gedrückt 0V. Und diesen COde: PortD = PortC
Das Einlesen funktioniert mit PINC, nicht PORTC! Beliebter Fehler.
-
Thread
uC liest Taster nicht richtig ein - warum?
PORTC |= (1<<PC1); //zur Signalisierung wait100(); wait100(); PORTC &= ~(1<<PC1); } } } [/c] Definitionen: [c] #define CNTMIN 7 // Min. Zeit um Tastendruck
Falsch würde ich sagen. Mit JTAG geht PINC3 nicht.
-
Thread
Probleme mit C
DDRD = 0xFF; // PortD alles als Ausgang DDRC &= ~ (1<<DDC0) | (1<<DDC1) | (1<<DDC2); // PORTC 0...2 als Eingang DDRC |= (1 << DDC3) | (1 << DDC4) | (1 << DDC5); // PortC 3..5 als Ausgang PORTC |= (1 << PC3) | (1 << PC4) | (1 << PC5);// PORTC 3..5 High = Digits aus // Timer 1 konfigurieren
1000ms hab ich nur testweise eingesetzt, damit die Uhr während der Entwicklung ein bisschen schneller geht^^ Aber ich habe noch eine ganz andere Frage: Wie kann ich einen Summer an meinen Atmega8 anschließen? Die Ansteuerung wird ja dann über einen Timer mit der richtigen Frequenz laufen, oder?
-
Thread
Wie AtMega8 mit Bascom programmieren
Internet nach möglichkeiten. Möchte ja so was wie Programmteile mache - weiß aber nicht wie das geht. Unter Programmteile meine ich, dass wenn ich z.b. Taster 1 Drücke eine bestimmte Aktion ausgeführt wird, die wenn ich dann los lasse, wie aufhört und das Blinken wieder anfängt.
= 0 Waitms 150 Loop If Pinc.3 = 1 Then Gosub 1 Do Loop Sub Unterprogramm Portc.5 = 1 End Sub
-
Thread
PNP-Transistor an ATMega328 - LED glimmt?
Basiswiderstand und den Transistor die LED ein. Wenn die LED aber eigentlich dunkel sein sollte (PORTC |= 1<<PC0), glimmt sie ganz leicht, sie geht also nie ganz aus. Das passiert, sobald der Pin im Output-Modus ist (DDRC |= 1<<PC0). Woran liegt das, und wie kann ich es abstellen?
messe ich am Ausgangsport etwa 4,4V Tippe mal auf: AVCC nicht angeschlossen. Dann zieht sich PORTC seine VCC über die Pins. Peter
-
Thread
Schalten eines Tasters
EDIT: [avrasm]SBI PORT PORTC,4[/avrasm]
OK...Blöd wenn die Katze vorzeitig auf Enter drückt ;D Ich meine natürlich: [avrasm]SBI PORTC,4[/avrasm] So jetzt aber
-
Thread
Lauflicht (hin und her) 14 LEDs Problem in asm
; if yes, the current LED needs to be on out PORTA, STORE2 ; else the next one out PORTC, STORE2 rjmp LOOP ; and start over THIS_LED: cp OUTER, INNER out PORTA, STORE ; switch on current LED out PORTC, STORE rjmp LOOP ; and start over
rjmp LOOP ; ansonsten springe zu loop Storesetzen: sbi PORTA, PB7 sbi PORTC, PB7 ldi STORE1, 128 LSR STORE1 rjmp test2 test2: out PORTA, STORE1 out PORTC, STORE1 inc ZAEHLER2 rjmp test3 test3: LSR STORE1 CPI ZAEHLER2
-
Thread
Problem beim Vergleich von ADwandlerwerte zwischen Master und Slave
LED obwohl der Differenz ist > immer kleiner als 150 [C] if ( maxi > 150 ) PORTC |= (1<<PC3); else PORTC &= ~ (1<<PC3); [/C] Und deine LED ist sicher so verschaltet, dass sie leuchtet wenn der Pin auf 1 gezogen wird? Meistens ist das nämlich genau anders rum verschaltet: eine LED wird zum leuchten gebracht, indem man den Pin auf 0 setzt. PORTC: Welchen Prozessor benutzt du? Hat der ein JTAG? Liegt das zufällig am PORTC und ist nicht ausgeschaltet?
-
Thread
AVR Atmega8 / Atmega32 - BAS Signal
< 17) { PORTC = 0b00000000; } if(n == 621|622|623|624|625 && TCNT1 > 16 && TCNT1 < 257) { PORTC = 0b00000001; n ++; if(TCNT1 == 256) { TCNT1 = 0; }
{ PORTC = 0b00000001; //schwarz } } if(n > 10 && n <= 620 && TCNT1 > 496 && TCNT1 < 513) //hintere Schwarzschulter { PORTC = 0b00000001; n ++;
-
Thread
Probleme mit Uart und ISR
servopos[4]>count) temp |=(1<<PD6); if(servopos[5]>count) temp |=(1<<PD7); if(servopos[6]>count) PORTC |=(1<<PC0); else PORTC &=~(1<<PC0); if(servopos[7]>count) PORTC |=(1<<PC1); else PORTC &=~(1<<PC1); PORTD = temp; if(count<2000)count++; // Die Impulse sollten alle 2ms gesendet
servopos[4]>count) temp |=(1<<PD6); if(servopos[5]>count) temp |=(1<<PD7); if(servopos[6]>count) PORTC |=(1<<PC0); else PORTC &=~(1<<PC0); if(servopos[7]>count) PORTC |=(1<<PC1); else PORTC &=~(1<<PC1); PORTD = temp; if(count<2000)count++; // Die Impulse sollten alle 2ms
-
Thread
Uhr Bascom problem
hwstack = 32 $swstack = 10 $framesize = 40 Config Lcd = 16 * 2 Config Lcdpin = Pin , Db4 = Portc.2 , Db5 = Portc.3 , Db6 = Portc.4 , Db7 = Portc.5 , E = Portc.1 , Rs = Portc.0 Config Lcdbus = 4 Cursor Off Ddrb = &B11111111 Ddrd = &B00000000 Portd.0 = 1 Portd.1 = 1 Portd.2 = 1 Portd.3 =
Ausschalten des Radios. Wenn in der 1 Min. Weckphase der Alarm mit anaus ausgeschaltet werden soll, geht das im Code oben noch nicht.
-
Thread
Reset Eingang zieht Strom (ATMEGA48 20AU)
Reseteingang den Strom > Schluckt. Wie kann das sein? VCC-Pins hängen an der Versorgung? Ansonsten geht der Strom über die Eingangspins, also auch den Reset-Pin.
Ich hab das jetzt nachvollzogen mit einem ATM8(8Mhz) und 4 Blauen LED's am PortC (so schnell als möglich toggeln) Flussspannung 3.1V Vorwiderstand 4.7Ohm. Am Steckbrett geht's immer, auf einer Lochrasterplatine gibts alle paar Minuten einen Reset. Hast Du schon mal überlegt
-
Thread
Handykamera MCA-25 ansteuern
7,.... Mhz??? ist da nicht UBR=0??? geht das überhaupt???
Ja das geht :)
-
Thread
Character LCD für AVRs mit 4bit Bus
200000-5) Und natürlich müssen die Port-Zuweisungen für die Controls und 4bit-Daten LCD_rs_ = (PORTC<<8) + 1 LCD_rsd_ = (DDRC<<8) + 1 LCD_e_ = (PORTC<<8) + 3 LCD_ed_ = (DDRC<<8) + 3 LCD_wr_ = (PORTC<<8) + 2 LCD_wrd_ = (DDRC<<8) + 2 ; LCDdout = PORTC LCDdin = PINC LCDddr = DDRC auf
mein lcd geht endlich. der fehler lag wohl am timing und daran das der befehl für font und format fehlten. nach 10 mal strom an und aus gings, fragt nicht warum !? ^^ danke für die hilfe grüße g1o
-
Thread
String über UART an LCD
Reihenfolge deiner push und pop Befehle stimmt nicht, es wird > LIFO benutzt, heisst letzter rein geht als erster raus. Oh stimmt ganz vergessen... Jetzt wirds langsam immer peinlicher ._. [avrasm] receive: cli SBI PORTC,3 push temp1 push zl push zh ldi zl, low(text)
Wenn ich mehr Bytes reserviere macht es keinen Unterschied....Er bleibt bei dem Vergleich und geht gar nicht in die Stringfunktion
-
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
SPI Display am Attiny 3216
RESET_PORT PORTC #define CS_PIN PIN3_bm // PC3 #define CS_PORT PORTC void spi_init(void) { // SPI0 auf alternativen Pins: MOSI=PC2, SCK=PC0 //PORTMUX.SPIROUTEA = PORTMUX_SPI0_ALTERNATE_gc; PORTMUX.CTRLB |= PORTMUX_SPI0_bm; // SPI0 auf Alternate: SCK=PC0, MOSI=PC2 PORTC.DIRSET = PIN0_bm | PIN2_bm; // SCK, MOSI SPI0.CTRLA = SPI_ENABLE_bm | SPI_MASTER_bm; SPI0.CTRLB = SPI_SSD_bm; } void gpio_init(void) { PORTA.DIRSET = DC_PIN; PORTC.DIRSET = CS_PIN |
-
Thread
AVR im eimer?
falsch" eingestellt sind? Oder wie passiert sowas? Ich nehme nicht an dass es so ist, dass man bei PORTC standardmässig nicht alle pins auf high schalten kann...
Takt wieder beleben können und konnte die einstellungen nun vornehmen. Nun klappt es auch mit PORTC besten dank für eure hilfe :)
-
Thread
Dämmerungsschalter mit 3mm LED als Lichtsensor und Anzeige
Codevision... Sollte mit der EVAL Version von Codevision funktionieren. Funktion: Über den ADC0(PORTC.0) Eingang des ATMega wird die Helligkeit gemessen. Die Beschaltung habe ich im Source aufgezeichnet. Die Diode hängt zwischen PORTC.0 und PORTC.1, wobei die Anode der Diode an PORTC.0 geht. Ich hoffe
einer Alarmanlage. Zusätzlich werden die LED's dann angesteuert wenn das elektrische Tor auf oder zu geht.
-
Thread
Signalauswertung Empfänger (Modellbau)
if(impuls < 47) // Vergleichswert für 1,5ms bei 8MHz und TimerPrescaler 256 PORTC = ~0x00; else PORTC = ~0x01; signalEnd = 0; sei(); } } } [/c] Zur Funktion: Eigentlich ist die Geschichte recht simpel und wird
signalLength = (signal_2nd - signal_1st); if(signalLength < 6) { PORTC = 0xFE; } else { PORTC = 0xFF; } TCCR1B ^= (1<<ICES1); // Capture-Flanke umschalten setMode = 0; // Modus "steigende Flanke
-
Thread
Nokia 6100 Ansteuerung in C
ape, habe das nokia 6100 display mal angeschlossen. hängt bei mir an nem AT90S8535 mit 4 Mhz an Portc. Wenn ich einen Reset am AVR mache, dann kommt das testbild. aber nur ca. 1 sekunde lang. dann geht das display wieder aus ( also die hintergrundbeleuchtung bleibt an ). was kann das sein ?
ape, >habe das nokia 6100 display mal angeschlossen. hängt bei mir an nem >AT90S8535 mit 4 Mhz an Portc. Wenn ich einen Reset am AVR mache, dann >kommt das testbild. aber nur ca. 1 sekunde lang. dann geht das >display >wieder aus ( also die hintergrundbeleuchtung bleibt an ). >was kann das sein ?
-
Thread
LCD und STK500
spannungen am Diplay und am Port gemessen, ist jedesmal 5V bzw 4,95V DDRD=0x00 hab ich versucht, geht auch nicht auf 0xFF hab ich angegeben weil ich die PINs 0-7 am PORT auf out gestellt habe, schien mir logisch zu sein.
letzte Woche vorgenommen habe. Denn davor konnt ich zumindest den Cursor blinken sehn, aber jetzt geht garnix mehr. Kann es sein das beim update was schief gelaufen ist?
-
Thread
PIC18F13K22 Configurations bit
[avrasm] #include <p18f13k22.inc> org 0x00 Start clrf TRISC clrf PORTC bsf PORTC, 3 ;vierte LED einschalten goto $ end [/avrasm] Funktioniert nicht, da dass LVP-bit auf enabled ist. Nun muss ich das irgendwie auf disabled kriegen (Config
p18f13k22.inc> __CONFIG _LVP_OFF_4L org 0x00 Start clrf TRISC clrf PORTC bsf PORTC, 3 ;vierte LED einschalten goto $ end [/avrasm]
-
Thread
STM32 Problem SPI und Tasten multiplexen
_1_ MISO eine AF) PortB 0 - Spalte 0 PortB 1 - Spalte 1 PortB 2 - Spalte 2 PortB 10 - SCK PortC 0 - nCS PortC 2 - MISO PortC 3 - MOSI PortC 4 - Zeile 0 PortC 5 - Zeile 1
eben drüber zu schreiben) Da war noch etwas Dreck zwischen den Pins, konnt ich rauskratzen, jetzt gehts.