-
Thread
Wie unterbreche ich ein Programm ?
der Do-Loop Schleife in einem SUB springen und dort do-loop ausführen bis der Schalter wieder Low geht. Wie setze ich es um ? Ich grübele schon seit stunden..bitte um ein paar Codezeilen.. Danke..
.1 = Input Portd.1 = 1 Taster1 Alias Pind.1 Config Lcdpin = Pin , Db7 = Portb.5 , Db6 = Portc.1 , Db5 = Portc.2 , _ Db4 = Portc.3 , E = Portc.4 , Rs = Portc.5 Config Lcd = 16 * 2 Cls Cursor Off Do Pause = 2 Speed = 1 If Taster1 = 0 Then Do Incr G Waitms Speed
-
Thread
Portbezeichnung übergeben
Hallo, Ich möchte in meinem Programm den Portnamen an ein Unterprogramm übergeben. Geht das? Wie? z.B.: setPort(PORTC,0x02); Dieser Befehl würde dem PORTC den Wert 2 zuweisen. Aber wie würde hier die Argumentenliste für das Unterprogramm "setPort" aussehen? Vielen Dank
: > Hallo, > > Ich möchte in meinem Programm den Portnamen an ein Unterprogramm > übergeben. Geht das? Wie? > > z.B.: > setPort(PORTC,0x02); > > Dieser Befehl würde dem PORTC den Wert 2 zuweisen. Aber wie würde hier > die Argumentenliste für das Unterprogramm "setPort" aussehen? >
-
Thread
AVR und C++ - ein Versuch
Bisher habe ich IO per #define definiert und über inline Funktionen bedient. #define LED3 (PORTC, 3) Schöner wäre natürlich: dInput button1(PORTC,1); dOutput led3(PORTC,3); Ja diese MCUCPP ist sehr schön gemacht. Danke für den Link.
meistgenutzte bei mir, aber die Seite habe ich noch nie gesehen :( Also denne: in die Hände spucken und los geht's ;)
-
Thread
AVR Assembler: Z-Pointer dekrementieren?!
Hm, schade, das mit dem ADIW geht wohl doch nicht.
Hallo, bei SBIW muß das Lowregister angegeben werden. So gehts: SBIW ZL, 1 lpm out PORTC, r0 Gruß Rene
-
Thread
Komisches Verhalten von leds/taster
alle LEDS eingeschalten werden sollen, allerdings leuchteten die LEDs 6 und 7 nicht. (Habe PORTB und PORTC benutzt). Als ich dann anschließend PortD benutzt habe, ging es wieder. Heißt das, dass ich jetzt nur noch PortD benutzen kann? Das kann es ja nicht sein oder? Danach habe ich noch ein kleines Testprogramm
an portb.6 und port.b7 wird der quarz angehängt, hast du deinen uC auf externen takt laufen? portc.6 ist der reset-pin, musst also auf fuse setzen um den verwenden zu können
-
Thread
Propeller Clock
angezeigt. Wenn wir bei 9 sind, kommt wieder die eins, zweistelliges schaff ich noch net. So gehts solala, die Zahlen ruckeln etwas, aber es geht. Aber ich probier jetzt noch den zweiten Timer aus! Herzlichen Gruss und vielen Dank! Mario
Jo, so gehts auch.. :)
-
Thread
Atmega16-16AU
) { DDRC |= 0xff; while(1) { PORTC = 0x00; _delay_ms(10); PORTC = 0xff; _delay_ms(10); } } [/c] ich weiß dass das absolut nicht schön programmiert ist, aber es sollte eigentlich alle 10ms den gesamten PORTC
c] Oder sonst geht es über die Fuses auch! Lg, und Vielen Dank noch einmal! Groebar
-
Thread
ATmega88: Ports, PINs und DDR
haben die Port-Register eine >Breite von acht Bit. [...] Der ATmega88 besitzt die Ports PortA, PortB, PortC und >PortD, die man frei programmieren kann. Wenn ich das Datenblatt richtig verstanden habe, gibt es keinen PortA, oder? Und PortC hat auch "nur" 7 Bit? >Jeder einzelne I/O wird über die folgenden
die Port-Register eine >>Breite von acht Bit. [...] Der ATmega88 besitzt die Ports PortA, PortB, PortC und >>PortD, die man frei programmieren kann. > > Wenn ich das Datenblatt richtig verstanden habe, gibt es keinen PortA, Richtig. > oder? Und PortC hat auch "nur" 7 Bit? Er hat schon
-
Thread
Labornetzteil/Funktionsgenerator
40 $swstack = 16 $framesize = 32 $baud = 9600 Config Lcd = 20 * 2 Config Lcdpin = Pin , Db4 = Portc.4 , Db5 = Portc.5 , Db6 = Portc.6 , Db7 = Portc.7 , E = Portc.3 , Rs = Portc.2 Config Pina.0 = Output Config Adc = Single , Prescaler = Auto , Reference = Aref 'Now give power to the chip ' externe
OK, dann gehts morgen ab zum großen C ;-)
-
Thread
Timer sek zähler
main: cpi temp5,5 ; 5 Sekunden breq led_stat rjmp main led_stat: sbis PINC,0 sbi PORTC,0 sbic PINC,0 cbi PORTC,0 ldi temp5,0 ; Wieder auf 0 und von vorne... rjmp main [/c] Momentan lasse ich damit noch ein LED blinken, damit ich mit dem Oszi den Zeitabstand messen
*** main: cpi temp5,5 breq led_stat rjmp main led_stat: sbis PINC,0 sbi PORTC,0 sbic PINC,0 cbi PORTC,0 ldi temp5,0 rjmp main [/c]
-
Thread
Einzelnen Pin auslesen
> Hoffe jemand kann mir meinen Fehler erklären. > Also ich hab es bisher so versucht das ich PORTC (an dem hab ich die > Brücke gesteckt gehabt) ausgelesen PORTC dient zum Setzen (nicht zum Einlesen) der Ein-/Ausgangspins. Wie es richtig geht steht hier: http://www.mikrocontroller.net/
include <stdint.h> int main() { DDRC=0x00; DDRB = 0xff; while( 1 ) { PORTB = PORTC; } return 0; } [/c]
-
Thread
Software Pwm auf 8 Pin´s mit Bascom
ist extrem langsam. Stelle ich den Teiler wider auf 256, ist der PWM-Teil zu lahm, aber der rest geht. Kann mann es nicht machen, das der PWM-Teil funktioniert, und der AVR noch was anderes machen kann ? Bitte um hilfe !!! @Erwin, bei deinem beispiel ist es das selbe.
werden. $regfile = "m16def.dat" $crystal = 8000000 $baud = 57600 Config Lcdpin = Pin , Db4 = Portc.0 , Db5 = Portc.1 , Db6 = Portc.2 , Db7 = Portc.3 , E = Portc.4 , Rs = Portc.5 Config Portb = Output Config Timer0 = Timer , Prescale = 256 On Timer0 Timer_irq Nosave Dim X As Byte Dim Pwm_zeit
-
Thread
einzelne bits ändern in einem Array oder komplett anders ?
und eine LED Matrix 5x7. einzeln bekomme ich beide angesteuert. Die LED Matrix ist an PORTD und PORTC angeschlossen an PORTD die Reihen und an PORTC die Spalten, welche gemultiplext sind. Nun wollte ich aber jetzt die mit es leicht machen um bequem die LEDs durch ein Array schalten. Mein Array
while(1){ LedAn(a,b); } [/c] Wenn ich das LedAn vor der Whileschleife aufrufe dann geht die richtige LED an und wenn ich das in der Whileschleife aufrufe dann geht sie nicht an ?! Woran liegt das denn ? Danach werde ich das mit dem einzelindex und den makros mal ausprobieren.
-
Thread
Verständnissfrage bei ADC
_t ReadChannel(uint8_t mux); int main(void) { DDRC = 0b11111111; // Ausgänge am PORTC PORTC = 0b11111111; // LEDs Aus uint16_t adcval; adcval = ReadChannel(1); /* MUX-Bits auf 0b0001 -> Channel 1 */ if (adcval > 0) { PORTC= 0b00000000
So, die LEDs sind jetzt an (PORTD), der Analoge Wert kommt auch am PINA1 an, die Messung geht aber nicht.
-
Thread
Timer0 bleibt "kleben/stehen"??
genügend elektromagnetische Felder eingesammelt hat, kommt es irgendwann zum Interrupt und alles geht den Bach runter. Man lässt unbenutzten bzw. unnötigen Code nicht im Programm stehen! Niemals! Und schon gar nicht aktiviert man Interrupts für nicht benutzte Komponenten.
Immer noch am gleichen [C] DDRC |= (1<<4); // Taster PORTC |= (1<<4); [/C] einen Portpin, den du auf Ausgang stellst, wirst du eher selten mit einem Taster beeinflussen können. OK. Du erzeugst mit dem Taster einen Kurzschluss, wenn du den Ausgangstreiber
-
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
PIN bei Atmega128 abfragen
Hallo, ich möchte bei einem Atmega128 den Zustand der PINS am PORTC anfragen. Ich setze diese als Eingang mit einem PULL UP und möchte einen von extern anliegenden LOW Pegel detektieren. Habe also folgende Konfiguration: PORTC = 0xFF; //High setzen DDRC =
wunderbar. Vielen dank für die Tips und sehr schnelle Reaktion !! PS. Tatsächlich funktioniert es beim PORTC mit PIN0 nicht, aber andere PINS des C Ports funktionieren.
-
Thread
Berechnungsfehler bei der Konstruktion von Assembler Warteschleife?
), dann sind die Zeiten spürbar kürzer. Ich versuchte es so: [avrasm] longdelay: sbi PORTC, 0 ldi Temp3, 40 ; wait 1200ms loop: rcall Delay30ms ; 30ms x 40 dec Temp3 brne loop cbi PORTC, 0 ret [/avrasm] Das Signal auf PORTC dient
Jo, geht mal wieder zur Sache hier ;-) Mal im Ernst: Ich kann die Empörung des Themenstellers vollkommen verstehen. Unsachliche, arrogante und beleidigende Posts, wir die von C-hater, haben hier nichts
-
Thread
SED1520 - Pollinkompatibel und flink
Ich musste sogar eine Lupe davorstellen. Aber so kann man wenigstens einigermaßen erkennen worum es geht. Zu dem PS: Ich nehme an damit ist eine bestimmte Sektion auf dieser Webseite gemeint. Wo genau ist diese denn?
sed1520.h" unter dem Kommentar "// port settings": [c]// port settings #define SED1520_DATAPORT PORTC #define SED1520_DATAPIN PINC #define SED1520_DATADDR DDRC #define SED1520_CTRLPORT PORTD #define SED1520_CTRLDDR DDRD #define SED1520_RES 0 #define SED1520_RW (1 << 0
-
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
STK500 Port Treiber
So, so Auf dem STK500 geht alles und auf deiner selbst entwickelten Platine gehts nicht. Was wird dann der logische Schluss sein?
Es geht übrigens kreuzweise, d.h. PortC meine Schaltung nach LEDs vom STK500 geht, PortC STK500 nach LED meine Schaltung geht auch. Wenn ich Atmega aber rausholle und dann einschalte dann brennen die
-
Thread
Interrupt mit den CodeWizzard von Codevision
} else { if(ACO) //Kommentar siehe oben PORTC &= ~(1 << (ntc_mux - 8)); else PORTC |= 1 << (ntc_mux - 8); } } } } Dabei ist der Mux an die 4 LSB von PortB angeschlossen. Die LEDs sind an PortD (
Hallo. Vielen Dank für den Code. Ich probier das so schnell es geht mal aus. Gruß Helge
-
Thread
Probleme bei ansteuerung von LCD über verschiedene PORTs-Pin
na ja habe schon lange rum probiert. hier ist ein code abschnitt im Anhang am PORTC mit einer Lücke zwischen DA-Leitungen und RS-E-Leitungen
Hm, welcher Prozessor? PortC - da leuchtet bei mir immer das JTAG-Licht auf:-)
-
Thread
Atmega8 UART ext. Quarz
-----------Hauptprogramm------------------- int main(void) { DDRC=0x0F; // alle Pins an PortC als Ausgänge DDRD=0x04; // alle Pins an PortD als Ausgänge DDRB=0xFF; // alle Pins an PortD als Ausgänge USART_init(UBBR_Value); USART_Flush(); sei(); while(1) { //PORTC = 0x00;
nicht auf 9600 Bd eingestellt, sondern auf 315. Dieses [c] UCSRC = (1<<UCSZ1)|(1<<UCSZ0); [/c] geht in Wirklichkeit nach UBRRH, damit wird UBRR = 6*256 + 51.
-
Thread
timer problem atmega8
OVF_vect) { timer++; if(state==1) { if(timer<<insp) { PORTC |= (1<<0); } if((timer<<exsp) && (timer>=insp)) { PORTC &= ~(1<<0); } if(timer==exsp) { act++; timer=0; if(act==max)
OVF_vect) { timer++; if(state==1) { if(timer<<insp) { PORTC |= (1<<0); } if((timer<<exsp) && (timer>=insp)) { PORTC &= ~(1<<0); } if(timer==exsp) { act++; timer=0; if(act==max)
-
Thread
XTAL auf Ausgang uebertragen und verarbeiten
wuerde gerne das am XTAL anliegende Signal auf 1 Abfragen dazu hab ich mal was geschrieben aber das geht wohl so nicht oder? 2. wuerde ich gerne dieses Signal 1 zu 1 auf die Ausgaenge PA3 und PA5 uebertragen. Geht dies???? 3. macht das Sinn was ich geschrieben hab oder eher nicht? Wiegesagt hab nicht
auf 1 Abfragen Was für ein Signal? Wie schnell? >dazu >hab ich mal was geschrieben aber das geht wohl so nicht oder? Konfuser Unsinn. >2. wuerde ich gerne dieses Signal 1 zu 1 auf die Ausgaenge PA3 und PA5 >uebertragen. Geht dies???? Nur, wenn es ein relativ langsames Signal mit ein paar
-
Thread
Mit VB 2005 Express einen AVR mit RTL8019AS steuern
ior_pin Alias Pinc.5 Ne2000_iow_pin Alias Pinc.6 Ne2000_reset_pin Alias Pinc.7 Ne2000_a0 Alias Portc.0 Ne2000_a1 Alias Portc.1 Ne2000_a2 Alias Portc.2 Ne2000_a3 Alias Portc.3 Ne2000_a4 Alias Portc.4 Ne2000_ior Alias Portc.5 Ne2000_iow Alias Portc.6 Ne2000_reset Alias Portc.7 Ne2000_d0_
Ich möchte über den WinSock.SendData-Befehl die LEDs erstmal steuern (damit ich überhaupt weis obs geht) Zwischenzeitlich hab ich festgestellt das der AVR-Code einen Prozessorreset bewirkt (zumindest springt er immer von vorne los). Fuses hab ich geprüft (jtag,xtal, m128-mode) Ich weis einfach
-
Thread
erste Schritte mit Atmega8 und LED
einbauen, um die Ausgänge zeitlich zu halten ? Z.B. drücken des Tasters - LED ist 5 Sekunden an und geht dann aus. Also wie geht das ??? Gruss Boris ___________________________________________________________________________ #include <avr/io.h> int main (void) { DDRB &= ~( 1 << PB0
( 1 << PC1 ); //PC1 Ausgang while(1) { if (PINB & (1 << PB0))//wenn PB0 High ist... { PORTC |= (1 << PC0); //PC0 High } if (PINB & (1 << PB1))//wenn PB1 High ist... { PORTC |= (1 << PC1); //PC1 High } // Eine Schleife if (!(PINB & (1 << PB0))) //wenn PB0 Low ist... { PORTC
-
Thread
AN2131 USB CONTROLLER
* PortB Ausgaben */ #define OEB 0x7F9D; /* Datenrichtung PortB */ #define OUTC 0x7F98; /* PortC Ausgaben */ #define OEC 0x7F9E; /* Datenrichtung PortC */ volatile unsigned char xdata *c_Adr_Ptr;/* allg. Adr-Zeiger */ volatile unsigned char xdata *c_PortA_Ptr;/* PortA-Zeiger */ volatile
demnach an- und ausschalten. Mein Code sieht demnach folgendermassen aus: #define OUTC 0x7F98; /* PortC Ausgaben */ #define OEC 0x7F9E; /* Datenrichtung PortC */ void main () { volatile unsigned char xdata *c_PortC_Ptr;/* PortC-Zeiger */ /* Port C auf Ausgang setzen */ c_PortC_Ptr = OEC;
-
Thread
ATMega8, Multiplexing, ULN2803a
Hm.. Also schalte ich jetzt vor den PortC einfach meinen ULN2803a (auf GND schalten, COM offen lassen)? Brauche ich dann überhaupt meinen, in diesem Fall 1kOHM Widerstand, weil der Treiber ja auch 2,7 kOhm Resistor vorzuweisen hat? Und
nicht mit PNP-Transistoren funktionieren können? Und falls ja, würden doch 33Ohm ausreichen? Jetzt geht's ans Programmieren, das dürfte jetzt alles klappen ;) MfG Nik
-
Thread
Beispielprogramm für RFM12 433MHz Funk-Module
Du meinst, wenn irgendwo in der Mitte ein Byte verloren geht, oder wenn das Sync Word verloren geht ?
Aha, habe ich das jetzt richtig verstanden: Wenn Daten im FIFO dann geht FFIT auf high, sobald Daten aus sind geht er auf low.
-
Thread
ATMega128 ersetzt durch 2561 - nix geht mehr/warum?
TACH! also arbeite hier an boards die mal mit nem ATMEGA 128 bestückt waren (es geht erstmal um die inbetriebnahme // und nen OS zu progn. mit Treiber für Ethernet und RS232 Schnittstellen) Laut AVR sind die beiden uC pinkompatibel .. also zumindest prinzipell funktionieren müsste
0xFF; DDRD = 0xFF; DDRE = 0xFF; PORTA=0x00; // feste konst. Belegung PORTB=0xFF; PORTC=0xFF; for (i = 0;; i++) { PORTD^=0xFF; //toggle -Pins PORTE^=0xFF; } }[/c] die uC machen aber nix , wenn ich mit oszi messe .
-
Thread
AVR Starterkit Probleme
Du kannst ja auf dem Board mal nachsehen wohin die Led am Kontroller geht. Laut Schaltplan auf Port C5.
anderes stand weiss ich auch nicht. Habe jetzt die blink.hex Datei in den Controller geladen und es geht immernoch nicht :/
-
Thread
DS1820
Hast du mittlerweile was gefunden? Ich nutze auch Bascom Basic und den AT90S4433 Bei mir gehts schon mit der Hardware los http://www.canathome.de/Dokumentation/Kapitel2.htm Wie dort beschrieben hab ich den DS1820 angeschlossen. Ist das soweit korrekt?? Die Software die ich mir runtergeladen
Port auf Ausgabe setzten und Pin's entsprechend zuordnen Ddrd = &HFF Config Lcdpin = Pin , Db4 = Portc.4 , Db5 = Portc.5 , Db6 = Portd.1 , _ Db7 = Portd.0 , E = Portc.3 , Rs = Portc.2 Config Lcd = 16 * 2 Cursor Off Cls ' Pin für 1wire Schnittstelle festlegen, Schnittstelle wird von BASCOM
-
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
Arduino Micro Programm läuft nicht auf dem Mega
/Signalvergleich if (D[n] < val*S[m]) { //Dreiecksignal kleiner als Sinussignal bitSet(PORTC, 6); //Pin 5 HIGH } else { //Dreiecksignal größer als Sinussignal bitClear(PORTC, 6); //Pin 5 LOW } if (D[n] < val*S[m]) { //Dreiecksignal
Hallo Black D, beim Arduino Micro wird der Arduino-Pin D5 über PORTC6 angesteuert und der Arduino-Pin D6 über PORTD7. Beim Arduino Mega 2560 sind aber für den Arduino-Pin D5 PORTE3 und für D6 PORTH3 zuständig. Siehe die Dateien "pins_arduino.h" in den Ordnern C:\Program
-
Thread
LCD über Subroutine ansprechen ???
B00000001 'Int0 als Eingang konfiguriert - Programmiertaste Portc = &B00001111 Portd.4 = 1 'Pull-Up von Int0 an Portd.3 = 1 'Pull-Up von PD3 an Config Scl = Portc
mit einer IF-Abfrage anstatt Debounce funktioniert es ohne Probleme. Warum es mit Debounce nicht geht weiß ich nicht. Der Tip kam aus einem anderen Forum. Aber auch hier vielen Dank für die Hilfe. Enrico
-
Thread
AVR resetiert bei zu vielen LED's gleichzeitig (Spannungseinbruch)
Software darauf achtest, dass der Ausgang immer low ist, passiert nichts. Aber Vorsicht: Das Register (PORTC) zum Aktivieren der internen Pullups ist das gleiche wie das zum Setzen des Ausgangspe- gels. Wenn du also von Tastenabfrage auf LED-Ansteuerung umschaltest, musst du erst PORTC auf 0x00 setzen
das mit den Vorwiderstaenden auch nicht sondern meint anschliessend wie das mit den Gluehlaempchen geht , geht das auch mit LEDs.
-
Thread
Atmega8 ist programmierbar, läuft aber nicht
D0 dann den minuspol auf masse. Sollte man zwar nicht machen aber für einen ganz kurzen test geht das schon Achtung! kurz machen sonst geht die led Flöten. Hier der code dazu: --------------------- .include "m8def.inc" ldi r16, 0xFF out DDRD, r16 ldi r16, 0x01 out PORTD, r16 loop
sollte so geschaltet sein 11110000. Hast du vileicht am falschen port gemessen ?? PortB oder PortC ?? Gruss Beni
-
Thread
Cocktailmixer Steuerung
ich mich vorher schon halbwegs ausgekannt habe oder zumindest eine leise Ahnung hatte, wodrum es da geht. Und selbst dabei tauchen genug Probleme auf, mit denen ich vorher nicht gerechnet hatte. Das Projekt ist sicherlich interessant. Grundsätzlich ist das eine machbare Sache. Ich wills dir nicht kaputtreden
m8adef.dat" $crystal = 1000000 $hwstack = 100 $swstack = 100 $framesize = 100 'Ausgänge Led1 Alias Portc.1 Config Led1 = Output Led2 Alias Portc.2 Config Led2 = Output Led3 Alias Portc.3 Config Led3 = Output Led4 Alias Portc.4 Config Led4 = Output Led5 Alias Portc.5 Config Led5 = Output
-
Thread
Atmega8 Programmierung (LED Matrix)
main(void) { DDRC = 0xff; DDRB = 0xff; DDRD = 0xff; while(1) { PORTC = (1<<PC1)|(1<<PC3); PORTD = (1<<PD5) | (1<<PD7); _delay_ms(3000); PORTC = (0<<PC1) | (0<<PC3); PORTD = (0<<PD5) | (0<<PD7); _delay_ms(1000); } return 0;
Andreas Hermann schrieb im Beitrag #3428008: > PORTC = (0<<PC1) | (0<<PC3); Warum so kompliziert? Schreib doch gleich ganz einfach PORTC = 0; denn genau das ist es, was du hier machst. Es hilft nichts. Wenn du weiter kommen willst,
-
Thread
Taster abfragen UND dann.
Sowas geht mit dem neuen GCC nicht mehr, diese for-schleife wird gnadenlos wegoptimiert: [C] void wait_until_key_pressed(void) { unsigned char temp1, temp2; unsigned int i; do {
Nächstes Problem: Object file not found.... habe avr-studio geschlossen und wieder geöffnet, jetzt geht das kompilieren plötzlich mit oben genanntem fehler nicht!! :(
-
Thread
AVR-Tutorial - 4. LCD in fastavr-basic umgesetzt
(temp1) temp1= temp1 And &b00001111 PORTC=temp1 lcd_enable() temp2=temp2 And &b00001111 PORTC=temp2 lcd_enable() WaitUs 5 End Sub Sub lcd_init() WaitMs 250 PORTC=&b00000011 lcd_enable() WaitMs 5 lcd_enable
lcd_command() WaitMs 5 End Sub Sub lcd_enable() PORTC.4=1 Nop 3 PORTC.4=0 End Sub
-
Thread
ATTiny12 + bascom
Code: $regfile = "attiny12.dat" $crystal = 1000000 Config PORTB.0 = Output Do Portc.0 = 1 Waitms 500 Portc.0 = 0 Waitms 500 Loop End
STOPP! PORTC ist natürlich PORTB!
-
Thread
Bitte um Begutachtung von Schaltungsentwurf
Sinn hattest). Das sind die beiden Eingänge für den internen Analog Komperator. ADC gibts nur an PORTC.
vorhanden sein (allerdings laut datenblatt kleiner als 100nF, wenn ich mich recht erinner, aber 100nF geht auch)
-
Thread
Mega88 - Mal wieder UART
Hallo! Ich hatte auf dem Mega8515 nie Probleme mit dem UART, aber nun gehts los: Auf einem Steckbrett steckt ein Mega88. Als Takt dient ein Quarzoszillator mit 12 MHz (Fuses beachtet, mit _delay_ms(1000) passt die Geschwindigkeit auch). Vom PD1 gehts über den Pegelwandler
[c] while (!(UCSR0A & (1<<UDRE0))){ UDR0 = 0x55 ; PORTC ^= (1<<PC5) ; } ;[/c] -> [c] while (!(UCSR0A & (1<<UDRE0))){ } UDR0 = 0x55 ; PORTC ^= (1<<PC5) ;[/c]
-
Thread
Bin ich blind? Bascom Code will nicht
, nur nicht mit Rateup(64). Rateup(1) wird korrekt mit 100 angezeigt, also das Füllen des EEprom geht. Rateup(2) ist aber 0. Das Spielchen kann ich mit jedem Byte aus dem Array machen, manuell wie Rateup(7) = E_rateup(7) geht. Nur in Read_Eram eben nicht. Wie man sieht, habe ich das Array schon
crystal = 16000000 $hwstack = 128 $swstack = 64 $framesize = 32 Config Lcdpin = Pin , Db4 = Portc.2 , Db5 = Portc.3 , Db6 = Portc.4 , Db7 = Portc.5 , E = Portc.1 , Rs = Portc.0 Config Lcd = 16 * 2 Cursor Off Ddrb.3 = 1 Swon Alias Portb.3 'the main
-
Thread
[AVR] Unterschied zwischen atmega8L-8PU und atmega8-16PU
5 Then Incr Lednumber Else Lednumber = 0 End If Isr_timer0: If I = 0 Then Portc = &B00000001 Portb = Seg1 Incr I Elseif I = 1 Then Portc = &B00000010 Portb = Seg2 Incr I Elseif I = 2 Then Portc = &B00000100 Portb = Seg3
Das L beim MEGA8L steht für "Light". Der ist für Beleuchtungen wie LED etc. optimiert. Ohne L geht nur Digital und kein Licht! Gruß Hans ;)
-
Thread
UART soll nach externem Interrupt senden (C, ATM.8)
Alter das ist echt ne grosse Baustelle;) putch('0x12'); //<DC2> Schwachsinn. Das geht in C nicht ohne massive Fehlermeldungen. So macht man das. putch(0x12); //<DC2> Aus dieser Routine kommst du nie wieder raus. [c] int wait_for_data() { while(1) {PORTB=(1<<PB3)
); while(1) { PORTB^=(1<<PB0); // Rote LED blinkt _delay_ms(50); if(PORTC>0) //prüfen ob Daten in Register { PORTB=(1<<PB3); //DEBUGLEUCHTE PORTC = 0; //Buffer zurücksetzen sendepuffer_anfordern; } return
-
Thread
$hwstack $swstack $framesize falsch dimensioniert??
Portd.2 = 1 Config Lcd = 16 * 2 Config Lcdpin = Pin , Db7 = Portc.5 , Db6 = Portc.4 , Db5 = Portc.3 , Db4 = Portc.2 , E = Portc.1 , Rs = Portc.0 Config Int0 = Low Level Config Timer1 = Timer , Prescale = 8 Enable Timer1 On Timer1 Isr_timer Enable Interrupts
Label springen, wo am Ende ein Return steht. Da dann keine Rücksprüngadresse auf dem Stack liegt, geht's ins Nirwana. Ich habe mir nicht den ganzen Code angesehen, aber kannst du anstelle der Gotos nicht Gosubs nehmen?