-
Thread
Finde den Fehler im programm nicht
Komisches Programm... So wie das jetzt da steht geht das so: PORTC als Ausgang, PORTA einlesen, wenn Eingang 0 UND 1 logisch 1 sind, dann wird der (jetzt kommts) PULL-UP vom Eingang 0 an PORTA aktiviert, wenn nicht, wird der PullUp ausgeschaltet. Verbesserung: PORTA mit PORTC ersetzen.
-
Thread
stacksicherung bei 2 ints
Masse),wie immer. Portc dient alternativ auch als Input für 74254 Bustreiber, ebenfalls 74154 selektiert. Dort sind Taster mit Pullup 5K R´s angeschlossen. Taster schalten gegen Masse. Portc,wie gesagt,als Input,hi-Z,
Hallo Uli, freut mich das es nun geht. Gruß, Arno
-
Thread
Erste schritte mit AVR
Variablen. Das Programm tun Compiler/Linker in das Segment "Text". WIE ÄUSSERT SICH DEIN FEHLER??? GEHT NICHT GEHT NICHT. DAS IST KEINE BESCHREIBUNG.
ich als Code geschrieben. #include <avr/io.h> int main (void) { int lauf=0; PORTC=0x20; DDRC |= _BV(DDC5); while(1) { PORTC=0x20; for(lauf=0;lauf<1000;lauf++); PORTC=0x00; for(lauf=0;lauf<1000;lauf++); } }
-
Thread
ATmega8a defekt?
regfile = "m8adef.dat" $crystal = 1000000 $hwstack = 100 $swstack = 100 $framesize = 100 Config Portc.5 = Output Do Portc.5 = 1 Wait1 Portc.5 = 0 Wait 1 Loop End Übertragen habe ich die .hex Datein mit Hilfe des AVR Studios 6. Tools -> Device Programming -> ATmega8a
Versorgungsspannung resp. Masse angeschlossen, oder? Johannes A. schrieb im Beitrag #3038075: > Do > > Portc.5 = 1 > > Wait1 > > Portc.5 = 0 > > Wait 1 > > Loop Bin kein Bascom Spezi, aber entweder 'Wait1' oder 'Wait 1' ist falsch.
-
Thread
switch-case-Anweisung zu langsam
mit [c] volatile uint8_t * PORT[3]={ &PORTB, &PORTC, &PORTD }; [/c] bekomme ich die Meldung: Build succeeded with 0 Warnings. Ohne das *volatile* bekomme ich allerdings die Warnung: *initialisation discards qualfiers from pointer target type*
schrieb im Beitrag #2011672: > du kannst ja immer noch ein sei/cli drum herum machen :-) Wie geht das?
-
Thread
Über einen µC Laufzeit messen und über RS232 ausgeben
diesen Kanal ab. Stop des Kanals berechnet die Differenz zwischen aktueller Uhrzeit und Startzeit. Geht mit beliebig viel Kanälen.
2266 Bytes Wenn es so weiter geht wird es ein 3 Zeiler. :-)
-
Thread
2 i2c ports in bascom mit mega8 ode mega 88
' I/O port control bits Return I2cstop Read_sp5055: Config Scl = Portc.5 Config Sda = Portc.4 I2creceive Addr2 , Pllstat Return Write_sp5055_1: Config Scl = Portc.6 Config Sda = Portc.7 I2cstart 'start
' I/O port control bits Return I2cstop Read_sp5055_1: Config Scl = Portc.6 Config Sda = Portc.7 I2creceive Addr2 , Pllstat Return [/pre] aussehen ist das ok?
-
Thread
zwei Bits beeinflussen - ich steh geradeauf dem Schlauch
Geht mit AVRs nicht, nicht ohne vorher irgendwas auszulesen.
zurücksetzen) kann ich das über ein #define hinbekommen? so nach dem Motto: [c] #define Zustand1 (PORTC |= 0x01);PORTC &= ~0x02) #define Zustand2 (PORTC |= 0x02);PORTC &= ~0x01) [/c]
-
Thread
Atmega324A Probleme bei FET Steuerung
> PortC JTAGEN? HTH
Und ein letzter: AVR-Studio 5 mit 324P als Target geht auch. Mh.
-
Thread
LCD-Modul MC1001AW-TGR
BASCOM Code : [pre]$regfile = "M8def.dat" $crystal = 1000000 Config Lcdpin = Pin , Db4 = Portc.0 , Db5 = Portc.1 , Db6 = Portc.2 , Db7 = Portc.3 , E = Portc.5 , Rs = Portc.4 Config Lcd = 16 * 2 Cls Lcd "Lichtomat " do:loop [/pre]
Bestandteil der Initialisierung ob der Corsor angezeigt werden soll oder nicht. Wie das in Bascom geht entzieht sich meiner Kenntnis. Gruß aus Berlin Michael
-
Thread
Wie kann ich folgenden C-Code mit einer Schleife kürzer machen?
BIT PD1 #define LED_2_PORT PORTB #define LED_2_BIT PB6 #define LED_3_PORT PORTC #define LED_3_BIT PC3 #define LED_4_PORT PORTC #define LED_4_BIT PC4 #define LED_5_PORT PORTC #define LED_5_BIT PC5 #define LED_6_PORT PORTD #define LED_6_BIT
möchte speziell in die for-schleife etwas einbauen, dass dem gerecht wird, wenn ich einige leds an portc, und einige an portd habe. mir gehts darum zu verstehen wie ich veränderbare variablen, statt "PD5, PD6, usw..." verwende.
-
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
LCD Ansteuern mit PIC 16F84A funzt nicht
input movlw B'00001111' iorwf TRISB, f bcf STATUS, RP0 BusyLoop bcf PORTC, RS bsf PORTC, RW ; Lesen bsf PORTC, EN nop movf PORTD, w movwf LcdStatus bcf PORTC, EN nop bsf PORTC, EN ; Enable nop bcf PORTC, EN btfsc LcdStatus, RS
Daten bsf PORTC, EN nop bcf PORTC, EN ; Disable LcdBus bcf PORTC, RS ; return end [/avrasm]
-
Thread
Negation in if Abfrage => Problem
Ja, genau darum gehts. Scheiß Standart ;-) aber bei: PORTC &= ~(1<<PORTC2); bleibts doch auch bei 8bit...
Wo ist da dein Problem? Das ist doch [c] PORTC &= ~(1<<2); PORTC &= ~4; PORTC &= 0xFFFB; [/c] und der Compiler weiss, dass dies als Bit-Operation zum gleichen Ergebnis führt wie [c] PORTC = (int)PORTC & 0xFFFB; [/c] Entscheidend ist was
-
Thread
1 Sekunde mit Timer1 ATmega32 (Bascom) Hilfe beim berechnen
$crystal = 14745600 $baud = 9600 Baud 9600 Config Lcd = 16 * 2 Config Lcdpin = Pin , Db4 = Portc.3 , Db5 = Portc.4 , Db6 = Portc.5 , Db7 = Portc.6 , E = Portc.2 , Rs = Portc.0 Config Timer1 = Timer , Prescale = 256 Enable Timer1 On Timer1 Timer1_isr Timer1 = 51135 Dim A As Integer Do
Juhu jetzt gehts! Danke:D Ich musste natürklich das Cls rauslöschen weill das geht ja immer zu lange oder? Langs an dem? Jetzts timmts auf jeden fall - danke:D Könntet ihr mir trotzdem noch sagen obs am Cls lag
-
Thread
LEDs ansteuern via Multiplexing
(1); PORTC &= ~(1 << PC3); PORTB &= ~(1 << PB3);} if(color==1) {PORTC |= (1 << PC3); //Zeile 1 PORTB |= (1 << PB5); // Spalte 6 //_delay_ms(1); PORTC &= ~(1 << PC3); PORTB &= ~(1 << PB5);} break; case 3: if(color==0) {PORTC |= (1 << PC3); //Zeile 1 PORTC |= (1 << PC0); // Spalte 7 //_delay_ms(1); PORTC &= ~(1 << PC3); PORTC &= ~(1 << PC0);} if(color==1) {PORTC |= (1
-
Thread
Warum läuft BCD Schalter Abfrage nicht ? (Atmega8)
.2 = Output Config Pinc.3 = Output Config Pinc.4 = Output Config Pinc.5 = Output Rr Alias Portc.2 Gr Alias Portc.0 Br Alias Portc.1 Rl Alias Portc.5 Gl Alias Portc.3 Bl Alias Portc.4 Bit1 Alias Pind.2 Bit2 Alias Pind.3 Bit4 Alias Pind.4 Bit8 Alias Pind.5 Declare Sub Bcd_auswahl
.2 = Output Config Pinc.3 = Output Config Pinc.4 = Output Config Pinc.5 = Output Rr Alias Portc.2 Gr Alias Portc.0 Br Alias Portc.1 Rl Alias Portc.5 Gl Alias Portc.3 Bl Alias Portc.4 Schalter Alias Pind Declare Sub Bcd_auswahl Dim Stellung As Byte Dim Pwm As Byte Dim Warte As
-
Thread
PWM einlesen beim mega32
Tastgrad der PWM wird _hinreichend_ genau bestimmt. Du legst dann nur noch fest, ab einer PWM von X geht die Lampe an und bei PWM von Y geht die Lampe aus. Oder denke ich verkehrt ?
aktuell_pwm_l < 160) { PORTC|=(1<<PC3); } if (aktuell_pwm_l >= 160 && aktuell_pwm_l < 200) { PORTC|=(1<<PC4); } if (aktuell_pwm_l >= 200 && aktuell_pwm_l < 255) { PORTC|=(1<<PC5); } } } [/c]
-
Thread
Rückgabewert von Funktion wird nicht übegeben
hängen LEDs mit vorwiederstand. Wenn ich folgenden Code compiliere und auf den Controller übertrage geht die jeweilige LED aus wenn ich den entsprechenden Taster drücke. [c] #include <avr/io.h> int main(void){ DDRD=0xff; PORTD=0xff; while(1){ PORTC=PIND; }//end while
PORT C ist als Ausgang geschaltet. wenn ich schreibe PORTC=PIND; funktionert es. Wenn ich schreibe PORTC=abc(); dann funktioniert es nicht...
-
Thread
Problem mit Assembler (ATmega8 / AVR-GCC)
beschreiben: Ausgänge CLR click OUT DDRB, click ; DDRB mit 0x00 beschrieben: Eingänge OUT PORTC, click ; LEDs ausschalten OUT PORTB, click ; und PullUps deaktivieren loop: IN click, PINB ; die Taster auslesen und OUT PORTC, click ; und auf die LEDs spiegeln RJMP
LDI click, input OUT _SFR_IO_ADDR(DDRB), click ; Eingänge LDI click, 0x00 OUT PORTC, click ; LEDs ausschalten OUT PORTB, click ; und PullUps deaktivieren loop: IN click, _SFR_IO_ADDR(PINB) ; die Taster auslesen und OUT _SFR_IO_ADDR(PORTC), click
-
Thread
Display Module CFAF320240F-TS Ansteuerung --- ATMEGA 128 ---- STK600
/ Chip Select #define LCD_RES PC2 // RESET // macros for control lines #define CLR_CD PORTC &= ~(1<<LCD_CD); #define SET_CD PORTC |= (1<<LCD_CD); #define CLR_CS PORTC &= ~(1<<LCD_CS); #define SET_CS PORTC |= (1<<LCD_CS); #define CLR_RESET PORTC &= ~(1<<LCD_RES); #define SET_RESET PORTC |= (1<<LCD_RES); #define CLR_WR PORTC &= ~(1 << LCD_WR); #define SET_WR PORTC |= (1 << LCD_WR); #define CLR_RD PORTC &= ~(1 << LCD_RD); #define SET_RD PORTC |= (1 << LCD_RD); // color definitions
-
Thread
Atmega 8 Hardwarefehler
'pullup Config Pind.2 = Input Taster4 Alias Pind.2 Taster4 = 1 'Leds Config Portc.0 = Output Config Portc.1 = Output Config Portc.2 = Output Led_grün Alias Portc.2 Led_gelb Alias Portc.1 Led_rot Alias Portc.0 Portb = 0 Do If Taster1 = 0 Then Toggle Led_grün
.5 SO GEHT ES!!! Config Pind.5 = Input 'oder es geht auch "Config Portd.5 = Input" Portd.5 = 1 'pullup Taster1 Alias Pind.5 Danke, problem gelöst.
-
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
LED Matrix Zeile für Zeile leuchten lassen
Was hat es damit PORTB |= (1<<PB2) | (1<<PB4); // Schieberegister SRCLR, RCLR auf High PORTC |= (1<<PC5); // D-Ausgang des Multiplexer auf 1 auf sich. PORTC wird in meinem Programm nicht benutzt und um PB2 und PB4 hab ich mich nicht gekümmert.
setzen das nichts leuchtet und dann Zeilen anschalten PORTA = ( PORTA & ~0x70 ) | RowCodes1[CurRow]; PORTC = ( PORTC & ~0x23 ) | RowCodes2[CurRow]; PORTC = ( PORTC & ~0x3C ) | RowCodes3[CurRow]; PORTB |= ( 1 << PB3 ); // Schieberegister zum durchschalten der Bits bringen PORTB &= ~( 1 << PB3 );
-
Thread
Touchscreen Routine, in C = Problem!
richtig geschrieben: [c]Touchscreen_kalibrieren(); // HIER Problemm beim callen?![/c] nee geht immer noch nicht :(
Nur so eine Idee.... x_null = 6; y_null = 8; x_factor = 117; y_factor = 140; geht nicht, aber mit Konstanten gehts. Code im main() geht aber mit Funktionsaufruf nicht. --> Ist der stack pointer richtig initialisiert ?
-
Thread
Atmega16 EA DIP204-6 4-line
Dann bleibt aber die Frage: was geht nicht? Wie sieht es aus?
ja, aber ich hatte nur ein Semester Microcontrollertecnich und es ist nicht meine Stärke. Mein BA geht nicht um uC, geht um Filters, aber ich muss leider Daten anzeige. :-(
-
Thread
ATxMEGA Entwickelungsboard
Hallo, wie wird der XMega programmiert? über JTAG? geht der AVRISP mkII auch? Gruß Martin
Board? >> Und die mkII kann bei mir jetzt auch PDI :) musst nur mal AVR Studio >> updaten geht das nur unter AVR Studio?? geht nicht über WINAVR?
-
Thread
Proplem mit LED Matrix 20 x 7
PORTC |=(1<<PC5); // Takt HIGH -> Flanke => schreiben PORTC &=~(1<<PC5); // Takt LOW PORTC |= (1<<PC4); // Bit 1 Setzen PORTC |=(1<<PC5); // Takt HIGH -> Flanke => schreiben PORTC &=~(1<<PC5); // Takt LOW PORTC &=~ (1<<PC4); // Bit 0 Setzen PORTC |=(1<<PC5); // Takt HIGH -> Flanke => schreiben PORTC &=~(1<<PC5); // Takt LOW
-
Thread
Eingang einlesen
Könnte es sein, dass die alternative Portfunktion von PortC aktiv ist? Eingangspin 5 funktioniert, die anderen aber gar nicht...
lauter Bäumen nicht und ich hab schon fast an mir gezweifelt. hatte in einem Programmteil noch PORTC &= ~(1<<PC2); PORTC &= ~(1<<PC3); PORTC &= ~(1<<PC4); PORTC &= ~(1<<PC5); stehen. Das Ganze ist wegen Testzwecken noch stehen geblieben und ich hatte es nur vergessen zu löschen, bzw. auszukommentieren
-
Thread
400er LED-Schriftzug Schaltplan
Geht Klar wurde gemacht. Weitere Änderungen?
of cascaded TLC5947 chips #define TLC5947_N 2 //XLAT - PB2 SS #define SET_RGB_XLAT_HIGH {PORTC |= (1 << PC5);} #define SET_RGB_XLAT_LOW {PORTC &= ~(1 << PC5);} //BLANK - PB1 #define SET_RGB_BLANK_HIGH {PORTC |= (1 << PC1);} #define SET_RGB_BLANK_LOW {PORTC &= ~(1 << PC1);} #if (36
-
Thread
Wie setze ich Ausgänge mit einer for-Schleife?
[c] for (i=0; i<7; i++) { PORTC = (PORTC && ~(1<<i)) || (((int)Fach[i] > 500 && Fach[i] < 800) << i); } [/c]
habe das mal so gemacht wie du es geschrieben hast, nämlich Fach[] <= 500 Pin in PORTC unverändert lassen Fach[] > 500 && Fach[] < 800 Pin in PORTC setzen Fach[] >= 800 Pin in PORTC löschen
-
Thread
manchmal abruptes Ein + ausschalten der LED
/------------------------------------------------------------------------ void init() //PORTC 0,1 und D2 Reserve Ein u Ausgänge { // Ports initialisieren DDRB |= _BV(1); // PORTB1 auf Ausgang (ausgabe der pwm für faden der lichter DDRC |= 0xff; //PORTC auf Ausgänge f LEDs
PORTB1 synchronisieren PORTC|=(1<<PC5); PORTC|=(1<<PC4); PORTC|=(1<<PC3); PORTC|=(1<<PC2);} else{ PORTC &=~(1<<PC5); PORTC &=~(1<<PC4); PORTC &=~(1<<PC3); PORTC &=~(1<<PC2);} } // Mainloop-Ende } //--
-
Thread
Frequenzzählen mit Bascom
Dankbar. $regfile = "4433def.dat" $crystal = 4000000 Dim A As Byte Config Lcdpin = Pin , Db4 = Portc.0 , Db5 = Portc.1 , Db6 = Portc.2 , Db7 = Portc.3 , E = Portc.5 , Rs = Portc.4 Config Lcd = 24 * 2 'configure lcd screen Config Portc = Output
100nF ausprobiert, aber keine Verbesserung. Allerdings, wenn ich den mehrere Sekunden laufen lasse geht der Zählstand auf 0 zurück!! Auch ohne Kondensator. Manchmal reicht eine Veränderung der Drehzahl, aber meistens muß ich die Versorgungsspannung kappen, und dann gehts wieder! Trotzdem Danke!
-
Thread
RS485 Schaltung funktioniert nicht
die anderen Pins auf den Port bleiben high obwohl ich die auf low setze: [c] DDRC = 0xFF; PORTC &= ~(1<<PC4); PORTC &= ~(1<<PC5); [/c] Alle Pins auf Ausgang und Pin4 und 5 auf low... Edit: PIN3 kann ich schalten, 4 und 5 nicht, wird wohl am Prozessor liegen. Ich nehm mal ein anderen Pin
LED_DDR DDRA #define LED_PORT PORTA #define TR_DDR DDRC #define TR_PORT PORTC #define TR_PIN 3 #define LED1 0 #define LED2 1 //#define TRANSMIT_ON PORTC |= (1<<PC3) //#define TRANSMIT_OFF PORTC &= ~(1<<PC3) //Statusdefinition #define
-
Thread
4 Tasten 1Led und Autorepeat
equ KEY_PIN = PIND ; Tasten .equ KEY_PORT = PORTD .equ KEY_DDR = DDRD dann geht Autorepeat. Und wenn ich schreib .equ led_port = PORTB ; LEDs .equ led_ddr = DDRB .equ KEY_PIN = PINC ; Tasten .equ KEY_PORT = PORTC .equ KEY_DDR = DDRC dann geht
sondern eingebaute Fehlerquellen, die dann eben zur nächsten Frage hier im Forum führen: Warum geht meine Schaltung plötzlich nicht mehr? Die ging doch die ganze Zeit! Kann an einem Mega8 plötzlich der PortC kaputt gehen? Warum muß ich bei Schaltung xxx jetzt AVcc und alle GND anschließen, bei
-
Thread
LCD EA DIP204-4 Initialisieren
= 0 _delay_ms(2000); //++++++++++++++++++ TEST ++++++++++++++++++// PORTC |= (1<<PC0); // Bit setzen PORTC |= (1<<PC1); // Bit setzen PORTC |= (1<<PC2); // Bit setzen _delay_ms(500); // warten PORTC &= ~(1<<PC0); // Bit loeschen PORTC &= ~(1<<PC1); // Bit loeschen PORTC &= ~(1<<PC2); // Bit loeschen //++++++++++++++++++ TEST ++++++++++++++++++// display_init(); // ------------------
-
Thread
TIPP: Atxmega DFU-Bootloader auf eigenen "Boot-Pin" verbiegen (direkt im Hex-File)
Offset von 0x20 zum nächsten hat ist es recht einfach. Für den Atxmega32a4u bei dem der Default-Port PORTC.3 und man ihn auf PORTA.2 ändern will sieht das so aus: [pre] Vorher Adresse | Nachher Adresse PORTC_DIR 0x640 | PORTA_DIR 0x600 PORTC_IN 0x648 | PORTA_IN
020000020000FC :1080000000C00091780005FD6AC0F092400608E1CA ^^^^-> PORTC_DIR = 0x0640 :10801000009353060FEF0A950023E9F700914806F5 ^^^^-> PORTC_PIN3CTRL ^^^^-> PORTC_IN = 0x0648 :1080200003FFECC0E0E0F0E0079116910F3F19F478 ^^-> PIN3 [/pre] und
-
Thread
LCD Modul Problem
DDR_PORTB_PIN4 << 4) | (DDR_PORTB_PIN5 << 5) | (DDR_PORTB_PIN6 << 6) | (DDR_PORTB_PIN7 << 7) #define DDR_PORTC_PIN0 OUTPUT /* Extension 1: datapin 8 - Enable for display */ #define DDR_PORTC_MASK (DDR_PORTC_PIN0) | (DDR_PORTC_PIN1 << 1) | (DDR_PORTC_PIN2 << 2) | (DDR_PORTC_PIN3 << 3) | (DDR_PORTC_PIN4 << 4) | (DDR_PORTC_PIN5 << 5) | (DDR_PORTC_PIN6 << 6) | (DDR_PORTC_PIN7 << 7) #define DDR_PORTD_PIN4 OUTPUT /* Extension 1: datapin 4 - R/W for display */ #define
-
Thread
Mega 16 mit LCD tuts nicht...(BASCOM)
den Fusebits hat es nichts zu tun bei mir, sondern irgendwie ist die Belegung von meinem LCD-Port (PORTC) anders. Ich habe ein kleines Testproggi geschrieben um die LEDS des STK500 mal einzeln anzusprechen. Geht bei PORTA, PORTB aber nicht bei PORTC. Benutzt Du auch PORTC ? Greetings Karlheinz
Hallo Wolfgang, ich habe gerade Deinen Beitrag im Forum bzgl. des Portc.3 am Mega 16 gefunden. Ich habe das selbe Problem: Das Display lässt sich über Portb problemlos ansteuern. Wenn ich das alles auf PortC verlege funktioniert nichts mehr, obwohl ich das JTAG Fusebit
-
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
Mega128 und Hardware-UART (Bascom)
aber vielleicht liegt das ja an bascom. Wenn ich das ganze jetzt aber manuell machen will: Do portc.0 = 0 waitms 10 portc.0 = 1 waitms 10 loop geht es nicht. Muss ich noch etwas anderes beim mega128 beachten als beim mega8?
Ja, da habe ich mir jumper eingebaut. Portc.0 und porte.7 und den gesamten portc auch nochmal..
-
Thread
Mehrfachbedingungen in defines?
Ausschalten erfolgt an anderer Stelle und hat mit der eigentlichen Frage auch nix zu tun. Mir geht es ja nur um einen "automatisierten" Weg um die Ausgänge schnell in einer Schleife zu beschalten. Wenn ich erstmal weiß wie's geht kann ich das entsprechend ausweiten und für das tatsächliche Programm
ganz verstanden aber es hat mich auf ne Idee gebracht. [c] volatile unsigned char* x_Port[] = { &PORTC, &PORTC, &PORTC, &PORTC, &PORTC, &PORTC, &PORTD, &PORTD, &PORTD, &PORTD, &PORTD }; unsigned char x_Pin[] = {PC7, PC6, PC5, PC4, PC3, PC2, PD7, PD6, PD5, PD4, PD3}; int main(void) { DDRA = 0x7F
-
Thread
Problem mit Subroutine CALL-RET.
Ja es geht nur um das dritte....extented....
@MWS Danke.....habe ich ganz übersehen.... jetzt geht auch fuse=FF und RET DANKE an alle........... :-D
-
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
CNC Maschinchen
Indy = 4 End If 'ports setzen Portb.4 = My(indy).1 Portb.5 = My(indy).2 Portc.0 = My(indy).3 Portc.1 = My(indy).4 End Sub Sub Motorz(rz As Integer ) Indz = Indz + Rz 'wenn obergrenze erreicht, dann auf anfang setzen If Indz > 4 Then Indz = 1 End
erreicht, dann auf ende setzen If Indz < 1 Then Indz = 4 End If 'ports setzen Portc.2 = Mz(indz).1 Portc.3 = Mz(indz).2 Portc.4 = Mz(indz).3 Portc.5 = Mz(indz).4 End Sub
-
Thread
AVR und GCC machen Unfug!?!?!
2000 ) // Alle 2 Sekunden... { msCounter -= 2000; ledAus(); //PORTC = 0; // -HIER OBACHT WICHTIG!!! }//end if }//end if }//end while }//end main void ledAus( void ) { PORTC = 0; }//end doSingleBeep Es sollte sofort klar sein, was dieser
Das Problem ist ja ein anderes - nämlich dass mit der rauskommentierten Zeile... (im andren Fall geht die LED genau nach 2 Sek. aus!)
-
Thread
Problem mit Display
sbi(PORTC,1); cbi(PORTC,1); waitMs(1); PORTC = 0b110000; //0b00110000; sbi(PORTC,1); cbi(PORTC,1); waitMs(5); // 4-BitModus einschalten PORTC=0b100000; // Schreibsignal sbi(PORTC
dies wollte ich wechseln in 4-BitModus an PortC Bit 2-5 PortC Bit 0 = RS PortC Bit 1 = E sorry steht dort oben falsch
-
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
Verzögerte Schaltung
define F_CPU 1000000 #include <util/delay.h> int main (void){ DDRC=0b00000111; _delay_ms(500); PORTC = 0b11111110; _delay_ms(500); PORTC = 0b11111100; _delay_ms(500); PORTC = 0b11111000; _delay_ms(500); PORTC = 0b11111111; while(1) } ODER : #include <avr/io.h> #define F_CPU 1000000 #include <util/delay.h> int main (void){ DDRC=0b00000111; _delay_ms(500); PORTC = 0b00000001; _delay_ms(500); PORTC = 0b00000011; _delay_ms(500); PORTC = 0b00000111; _delay_ms(500); PORTC = 0b00000000; while(1) } und Freilaufdioden nicht vergessen.
-
Thread
Probleme beim Code
= 2; } tuerlinkstastertimer = 2; tuerlinkstasterstrom = 1; PORTC |= (1<<PC4); _delay_ms(600); PORTC &= ~ (1<<PC4); tuerlinkstasterstatus = 2; tuerlinkstasterstrom = 0; } } // Rechts
hatte mit C noch nicht viel zu tun deswegen wird der Code vll. etwas umständlich sein aber vorerst geht es mir darum das es geht.