-
Thread
Timer OCF0 Flag zurücksetzen
versuche jetzt mit einer Aufgaben-Lösung klar zu kommen, die mir nicht ganz logisch erscheint. Es geht um Signal Erzeugung mit Timer0 in CTC Mode mit Atmega AVR. Die Lösung ist als jpg Bild angehängt. Was mir dabei nicht klar ist, warum wird OCF0-Flag durch 1 setzen gelöscht? wenn als erstes
bleibt solange an dieser Stelle bis das OCF0-Flag gesetzt wurde. Ist dies der Fall, wird ein Pin an PORTC getoggelt, das Flag zurückgesetzt und das ganze wiederholt. Vermutlich wird in einem bestimmten Intervall eine LED ein-/ausgeschaltet.
-
Thread
PIC16F870 startet nicht
Projekt, und als erstes möchte ich mal eine LED auf RC3 blinken lassen - nur um zu sehen, ob's generell geht... Programmieren möchte ich in C. Ich habe folgendes Programm: #include <htc.h> __CONFIG(BOREN_ON & CP_OFF & WDTE_OFF & PWRTE_ON & FOSC_HS); #ifndef _XTAL_FREQ #define _XTAL_FREQ 16000000 #endif main(void) { TRISC = 0; ADCON1 = 7; for(;;) { PORTC = 0xff; _delay(100); //__delay_ms(500); PORTC = 0x00; _delay(100); //__delay_ms(500); } } Das ganz wird kompiliert mit dem Hitech PICC: picc
-
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
LED Blinken lassen!
Schnittstelle empfangen wird. Der Empfang ist kein Problem, nur das Blinken weil so: if sync = 0 then portc.7=1 waitms 500 toggle portc.7 end if ist eine verschwendung der resourcen? ich denke das geht mit dem timer? wär das besser? lösungen können auch in assembler kommen, ich muß mir dann halt was
Hier geht es mir allein Darum, dass eine LED blinken soll, solang das Board mit dem Computer nicht synchron ist. Solbald das Board an den Rechner angeschlossen wird und Synchron läuft soll die LED blinken. Sobald
-
Thread
sizeof() funktioniert nicht bei Array im EEPROM
> > Ausgabe bis Zeichen gleich '\0' NUL-Byte ist, dann stop. > Spart ne Menge Probleme. :-) Geht aber schon bei rechtsbündiger Ausgabe nicht mehr so einfach. Matthias
{ uart_send_byte(eeprom_read_byte(&a[x])); } } void relais_on() { if((PORTC &~ 0b00010000 )){ PORTC = 0b00010000; } else{ send_eemem_string(help_1); uart_send_lf(); uart_send_string(relais); } uart_send_string(r_on); uart_send_lf();
-
Thread
Code Problem: Fehler im Code? Compiler will nicht
[c] if(7<y<=15) [/c] Und sowas geht in C gar nicht! Wenn überhaupt, dann [c] if((y > 7) && (y <= 15)) [/c]
Johannes M. wrote: > [c] > if(7<y<=15) > [/c] > Und sowas geht in C gar nicht! Der Compiler beklagt sich nicht darüber, also geht es. ;-) Es wird aber sehr wahrscheinlich nicht das tun, was der Dichter uns damit sagen wollte... Es wird zuerst 7 mit y verglichen
-
Thread
Text ausgabe auf LCD mit µC
programmiere Das LCD is wie folgt angeschlossen: 1,2,3 = Versorgungspannung / Kontrast 4 (RS) = PORTC 1 5 (RW) = PORTC 2 6 (EN) = PORTC 3 7 - 14 = PORTA (8bit) Das Datenblatt habe ich direkt von Displaytech da bei Reichelt nur ein auszug zum download bereit stand (162C BC BC - IC: KS0070B)
auch. Ich habe eine kleine wartezeit eingebaut zwischen dem setzen des RS=1 und dem EN=1 und nun gehts =) Zumindest schreibt er mir mein display nun auf tastendruck mit 'Hallo' voll. Noch ein klein wenig dran basteln und es sollte hoffentlich klappen. Aber dennoch danke für die bemühungen
-
Thread
seltsames Phänomen Ausgabe auf LCD HD44780
0xFF; // PortB als Ausgang schalten DDRC = 0xFF; // PortC als Ausgang schalten DDRD = 0x00; // PortD als Eingang schalten PORTB = 0x1C; PORTC = 0x00; PORTD = 0x00; // interne Pull-ups an PORTD deaktivieren
Gedöns mit PORTB ist, soweit ich das auf die Schnelle gesehen habe, auch in allen Fällen gleich nur PORTC wird anders behandelt. Alles in allen sieht es so aus, als ob man die Funktionalität leicht mittels Tabellen und einer Abarbeitungsmaschine (ähnlich einer State-maschine) einfach implementieren
-
Thread
Atmega8 hängt nach Interrupt
Guten Abend :) Dieses mal habe ich ein Problem mit meinem Programm für den Atmega8. Wenn PortC >= 11 ist und der Interrupt ausgelöst wird, hängt sich das Programm auf und reagiert nicht auf interrupts. Ich bitte euch mir weiterzuhelfen :) LG [c]uint8_t segcodeB[11]; bool segcodeD[11];
1<<PD7); DDRB &=~(1<<PB0)|(1<<PB1)|(1<<PB2)|(1<<PB3)|(1<<PB4)|(1<<PB5); PORTD|=(1<<PD2); PORTC |=(1<<PC0)|(1<<PC1)|(1<<PC2)|(1<<PC3); MCUCR=0b00000011; GICR=0b01000000; sei(); while(1) { if (triggermove) { darstellzahl[0]=darstellzahl[1]; darstellzahl
-
Thread
Komisch: ATmega48, I/Os und Optimization
PC5 is input for (;;) { if (PINC & (1<<PC5)) PORTC |= (1<<PC4); else PORTC &= ~(1<<PC4); } } // Works in Optimize -O0 and -O1 // DOES NOT WORK in -O2 -O3 and -Os (output High) Benutze Studio 4.12 Ich weiss es gibt andere Methoden zum kopieren eines I/O bits, aber es geht mir hier um allein das Verstaendniss. Ach ja, frueher hatte ich beim compilieren immer einen kleinen Bericht am ende wo stand wieviel Memory aufgebraucht wird. Jetzt habe ich es nicht mehr, auch
-
Thread
Programmablauf des Drehzahlmesser in C stockt.
{ lcd_init(); //lcd initialisieren DDRC = 0b00000000; //Setzten der Pins an PortC auf Eingang PORTC = 0b11111111; //Aktivieren der internen Pull up Wiederst�nde an C init_interrupt(); //Interrups klar machen while(1) //diese Schleife soll
Drehzahlsignanl den Drehzahlwert auf 0 setzt.dann hab ich ca 2sek lang Striche im Display und dann gehts wieder. Vielleicht hat dafür ja auch noch jemand eine Idee?? Erst mal schon besten Dank für die Hilfe!! gruß gerd
-
Thread
Präprozessor und infix-operator
unter der Programmiersprache C. Wird auf das LCD gelesen und geschrieben, so muss z. B. zum Schreiben PORTC, für die Richtung DDRC, zum Lesen PINC und für die Position im Byte PC2 angegeben werden. Das ganze definier ich mir zur Vereinfachung folgendermassen: #define LCD_D4_OUT PORTC #define LCD_D4_IN
Nun ist hierzu allerdings 4 mal #define angegeben, wobei nur zwei Informationen notwendig wären (es geht um Port C, es geht um Bit 2). Als wollte ich dass elegant vereinfachen, indem ich #define LCD_D4_PORT C #define LCD_D4_BIT 2 angebe, um mit weiteren Makros die eigentlichen LCD_D4_OUT/IN/DR/DB
-
Thread
ATXXMega128A1 und Hardware-SPI
als ZIP anhängen. Sieht jemand irgendwo das Problem? Denn manchmal, zum Beispiel gerade eben, geht es ja und manchmal nicht. Wenn ich das Projekt nur kompiliere und auf den XMega lade, geht es manchmal und manchmal nicht. Das ist sehr verwirrend. Ich hab schon so viel ausprobiert. Aber da es ja manchmal
Also ich nutze den SPI bei meinem Xmega so: [c] void SPI_init(){ PORTC.DIR = (1<<PIN4) | (1<<PIN5) | (1<<PIN7); //SS & MOSI & SCK PORTC.OUTCLR = (1<<PIN7); SPIC.CTRL = (1<<SPI_MASTER_bp) | (1<<SPI_ENABLE_bp) | SPI_PRESCALER_DIV64_gc; //prescaler 64 => 500 kHz
-
Thread
switch anweisung in c
http://www.mikrocontroller.net/search?query=ATMEGA32+PORTC+JTAG&forums[]=1&forums[]=2&max_age=-&sort_by_date=0 Oliver
umprogrammieren. Ist im AUslieferungszustand des Chips auf ein gestellt, damit verlieren 4 Bits von PortC ihre Portfunktion.
-
Thread
DCF77-Modul von Pollin
uii das ist ja sehr günstig. Pollin ist echt super :) Billiger geht's wohl nur direkt aus china.
braucht das modul jetzt eigentlich eine HIGH-LOW Flanke an PON oder geht es auch ohne?
-
Thread
No supported board found! USBasp fehler
Arduinoboard gekauft hat kann man auch usbasp benutzen und das ist auch nicht schlechter. Nur geht beim atmega8 kein Weg dran vorbei die arduino IDE anzupassen. Zwei Fälle sind möglich: 1. Du hast einen Breadboard Aufbau mit einem üblichen externem 16Mhz Quarz an Xtal1 und Xtal2. Hier brauchst
Programmierung mit MC die ich kenne sieht ein Blinklicht wie folgt aus: DDRC = 0b00100000; PORTC = 0b11111111; // PC5 = High _delay_ms(1000); PORTC = 0b11011111; // PC5 = Low _delay_ms(1000); Im Arduino sieht der Beispielcode anders aus. int led = 13; pinMode(led
-
Thread
BASCOM LCD-Display Menü
Auswahltaste bestätigen. Jede Option soll natürlich noch eine Funktion ausführen. (zb. Ausgang Portc.1 auf HI schalten) Nach der Auswahl soll die Anzeige wieder zu einer Standardanzeige zurückspringen. Und das Menü soll erst wieder erscheinen sobald eine der Links/Rechts-Taste betätigt wurde.
If Keypressed > 0 Then Ddrb = &B00000000 Portb = &B11111111 Ddrc = &B11111111 Portc = &B00000000 If Pinb.0 = 0 Then Keypressed = Keypressed + 1 End If If Pinb.1 = 0 Then Keypressed = Keypressed + 2 End If If Pinb.2 = 0 Then Keypressed
-
Thread
STK500 mit ATMEGA8 LED PROBLEM
(glaube ich). Du musst die LEDs also "verkehrtherum" ansteuern. Also 0 = an, 1 = aus. Das mit dem PORTC könnte daran liegen, dass der AVCC-Pin eventuell nicht mit VCC verbunden ist. Das ist ein ganz böser Fehler.
OK, habs lösen können! Hab bei der Übertragung des Programms etwas falsch verstanden, aber jetzt gehts! Danke für eure Bemühungen!
-
Thread
Macro für Arrayinitialisierung
if (port==PORTA) return (1L<<(bit+24)); if (port==PORTB) return (1L<<(bit+16)); if (port==PORTC) return (1L<<(bit+8)); if (port==PORTD) return (1L<<(bit+0)); [/c] Ich weiß, das ist KEIN funktionierendes Macro, es geht ums Prinzip. Geht das überhaupt? Oder wird da das Macrokonzept überfordert
vergleicht den Inhalt von PORTA mit port. >Den kann der Compiler aber nicht wissen;) GENAU! So geht es! WOW! Danke! [c] #define PAT(port, bit) ((port==&PORTA) ? (1L<<(bit+24)) : ( \ (port==&PORTB) ? (1L<<(bit+16)) : ( \ (port==&PORTC) ? (1L<<
-
Thread
globale Variable in mehreren C-Files
Deklaration in eine Headerfile legen kann und dann dieses Headerfile in den C-Files einbinde. Dies geht leider nicht, dann kommt ein Multiple Deklaration Error... Wie kann ich das Lösen? - globale Variable deklarieren mit fester Adressierung und dann von allen C-Files darauf zugreifen können?!
tilt_x; variable8bit = (uint8_t)tilt_x;// LOW-Byte in variable PORTC = variable8bit; //ausgabe auf PORTC break; //usw. } } 2. C-file: void test() { int16_t tilt_x; //.... tilt_x = 0x1102; // dieser Wert soll 1. C-file zur Verfügung
-
Thread
NMEA von GPS-Modul mit PIC18f8520 auswerten, klappt nicht richtig.
comparators TRISB = 0x00; PORTB = 0x00; TRISE = 0x00; PORTE = 0x00; TRISC = 0x80; PORTC = 0x02; UART1_Init(4800); // Initialize UART module at 4800 bps Delay_ms(100); // Wait for UART module to stabilize while(1) { scratch = RCREG1;
in erster Linie nur 200 Zeichen gross ist, passiert dann alles mögliche > Hier noch mein Code, geht das auch schöner? Sicher. Wenn du dir angewöhnen würdest nicht dem schnellen Hack hinterherzulaufen, sondern wenigstens halbwegs vernünftiges Softwaredesign betreiben würdest. Dazu gehört auch,
-
Thread
Matrixtastatur Probleme
Atmega 64 eine 3x4 Matrixtastatur angeschlossen. Und ich habe folgenden Code dafür geschrieben: PORTC=0x7F; DDRC=0x70; #define Z4 PINC.0 #define Z3 PINC.1 #define Z2 PINC.2 #define Z1 PINC.3 #define SP1 PORTC.4 #define SP2 PORTC.5 #define SP3 PORTC.6 keyboard() {
if (Z4 == 0) lcd_putsf("*"); } allerdings ist mir unklar wieso ein nop geht aber als ich das mit einem delay versucht habe es nicht funktioniert hat?!
-
Thread
Kapazitive Erdfeuchtemessung
habe einen atmega88 mit folgendem code: [c] DDRC = (1 << DDC0); //Port auf Ausgang setzten PORTC |= (1 << PINC0); /* setzt Bit auf 1 */ _delay_ms(5); // kurz warten bis geladen DDRC &= ~(1 << DDC0); //Port auf Eingang PORTC &= ~(1<<PINC0); //Tristate
Wenn du die dann im Erdreich versenkt hast, musst du eine Kapazitätsmessung durchführen. Das geht GANZ BESTIMMT nicht so, wie in diesem Code-Schnipsel! Wenn du einen funktionierenden Code für die Kapazitätsmessung hast, musst du deinen Messaufbau "kalibrieren": Mach eine Messung bei "pupstrockener
-
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
Wieso Objektorientiert?
// Rotary encoder B configuration encoder_B.ddr = &DDRC; encoder_B.port = &PORTC; encoder_B.pin = &PINC; encoder_B.pinNr_A = PC3; encoder_B.pinNr_B = PC2; encoder_B.internPullup = True; encoder_B.autoAcceleration = True; encoder_B.accerelationFactor = 100;
Technisch betrachtet ist das in diesen Faellen so, aber konzeptionell eben nicht. Und um das Konzept geht es, nicht ob der Pointer links oder rechts vom Methodennamen steht. Bei den obigen Beispielen geht es in erster Linie um Kapselung. Nun ist mir aber klar, warum ihr mit eurem Projekt so grosse Probleme
-
Thread
ATmga 16. LED Qube. Zu wenig spannung
to two rows of leds. // The upper 4 bits is one row, the lower 4 bits are one row. #define GRID1 PORTC #define GRID2 PORTA void ioinit (void); // initiate IO on the AVR void bootmsg (void); // blink some leds to indicate boot or reboot void delay_ms (uint16_t x); // delay function used throughout
So. Schaltplan. Und hier formatiert :-). Sorry, hatte nicht gesehen dass das geht. [c] // ############################################ // // 4x4x4 LED Cube project // By Christian Moen 2008 // chr@syntaks.org // Lisence: GPL // // ###################################
-
Thread
Timer0 mit abfallender Flanke
exakten Zeitablaufs Glückssache wird und bei der nächsten Sourcecodeänderung alles den Bach runter geht. Die interruptfreie Alternative würde statt j genau den Timerzähler, also z.B. bei Timer0 TCNT0 abfragen. Dabei muss der Timer vorher ins Laufen gebracht werden (Taktquelle, Prescaler...) und der
behandelt wurde, dann wird der nächste Ereignisgeber untersucht, ob es etwas zu tun gibt. Und dann geht das ganze Spiel wieder von vorne los: ein Ereignisgeber nach dem anderen wird abgeklappert ob es etwas zu tun gibt.
-
Thread
ATMega644p: Kein Reset nach Programmiervorgang
Es ist aus deinem Code nicht ersichtlich was an PortC hängt. Du hast JTAG nicht disabled. Vielleicht hängt sich dein Programm schon beim init auf.
Hubert G. schrieb: > Es ist aus deinem Code nicht ersichtlich was an PortC hängt. Du hast > JTAG nicht disabled. Vielleicht hängt sich dein Programm schon beim init > auf. Jau, so war das. JTAG nun disabled und siehe da, es geht. Vielen herzlichen Dank! Gruß,
-
Thread
Verstreute Portpins zu einem Port zusammenlegen
Declare Sub Schreibe_Port (x as Byte) und dann dort sagen: Sub Schreibe_Port (x as Byte) Portc.0=x.0 Portc.1=x.1 Portd.2=x.2 .... usw. End sub Das heißt, man kann so verschiedene Bits von verschidenen Ports in eine Variable x einlesen. MfG Paul
Paul Baumann wrote: > In BASCOM kann man zum Beispiel eine Subroutine vereinbaren: In C geht das schließlich nicht ;) Okay, stimmt. Es heißt dort Funktion.
-
Thread
LCD Ansteuerung in C / Startprobleme
irgend einen Trick? Mehr als die Datei auswählen kann ich doch nicht machen, oder? Hoffentlich geht's jetzt, sonst füge ich ihn in ein Beitrag!
deinen Code anzuschauen würde ich mal auf JTAG aktiviert, tippen. Sind nämlich 4 Pins von deinem PORTC. Gruß MISZOU
-
Thread
3 Interrupts am Arduino Nano
uint8_t pulse_C_pin = 6; void setup() { ... cli(); //PCMSK2 |= 0b00100110; // D 2,3,6 geht, müsste aber falsch sein PCMSK2 |= 0b01001100; // D 2,3,6 geht, müsste aber falsch sein PCIFR |= bit(PCIF2); // clear any outstanding interrupts PCICR |= bit(PCIE2); // enable
volatile uint8_t hlw, hlr; #define HLI(hli) ((hli+1)%HLS) Hl hl; void hl_setup (void) { PORTC |= (1<<PORTC5); // Activate pullup hl.stat = HLSTAT; vhl.stat = hl.stat; } static inline void hl_tick () { // This is called in ISR context static uint8_t nlmod = 0; uint8_t hlstat
-
Thread
Frage zu Compare Timer des ATTiny 25
Hallo, also es geht um folgendes: Ich bin gerade dabei mich in die Ansteuerung von Servos ein zu arbeiten. Bis jetzt ist mir, das auch ganz klar so weit. Ich hänge ein wenig beim Erzeugen des Impules (H-Pegel für 1
( ++ServoId >= SERVO_ANZAHL ) ServoId = 0; if( ServoId == 0 ) { PORTF = 0x01; PORTC = 0x00; } else if( ServoId < 6 ) PORTF <<= 1; else if( ServoId == 6 ) { PORTF = 0x00; PORTC = 0x01; } else PORTC <<= 1; OCR2 = 57 + value[ServoId];
-
Thread
Diskussion zum Artikel "Single Chip Frequenzumrichter" für den 2. MC Wettbewerb
besser trennen. Ich möchte das Ganze mit 12V statt 18V aufbauen. Als Mosfet habe ich irf840 bestellt. Geht z.B. PC817, 4n35?
Hallo Mathias, das kann ich einstellen. Geht bis 250Mhz. das solte reichen. Teste ich. Danke Gruß Lota
-
Thread
C; AVR: Eingänge und Ausgänge setzen
; DDRC &= ~(0b00000010); PORTC |= (0x0b00000010); DDRD &= ~(0xFF); PORTD |= (0xFF) [/c] Ist dies korrekt? Bei Abfragen bekomme ich jedesmal Fehler, sprich, die Bits sind nicht so wie sie sein sollen.
/C] Wiederrum: siehe Tutorial deiner Wahl, ganz am Anfang wo es zum ersten mal ins Eingemachte geht. AVR-GCC-Tutorial
-
Thread
Wie einen HAL bauen
gemeinsamen Nenner bilden. Funktionalität, nicht Register. Register interessieren erst wenn es darum geht, den HAL zu implementieren. Aber die Schnittstellen eines HAL stellen Funktionalität bereit.
natürlich für die meisten Kombinationen das im HAL hinterlegen: -> PORTB = PINB, PORTB, DDRB -> PORTC = PINC, PORTC, DDRC usw... So richtig schön finde ich das allerdings ned, sollte sich aber in Grenzen halten. Nur sind das dann wieder 3 "Variablen" mehr, die ich auch im Objekt speichern muss. Im
-
Thread
MPU-9150 Kompass mit BASCOM auslesen
0x0A (CNTL), address 0x0C 5. Read mag: Read 6 bytes from 0x03 (HXL), address 0x0C Schritt 1-3 geht problemlos, hier wird ja auch noch direkt auf 0x68 zugegriffen, das ist die Adresse meiner MPU. Bei Schritt 4. ist für mich geistig Schluss, hier würde ich mich über Lösungsvorschläge freuen:
..... 'I2C Config Sda = Portc.1 Config Scl = Portc.0 Dim Busaddress As Byte Dim Busaddress_read As Byte Dim Chipaddress As Byte ..... '------------------------------------------------------------------------------ Scanbus:
-
Thread
Mega32 mit VS1011 und SD-Karte -> Es will einfach nicht
//Pullupwiderstand - Braucht man den hier??? VS_PORT &= ~(1 << VS_RESET); //RESET geht auf LOW _delay_us(3000); //Kurze Verschnaufpause VS_PORT |= 1 << VS_RESET; //RESET geht auf HIGH while (count--) //Um zu sehen, ob DREQ erst LOW dann HIGH
Pullupwiderstand - Braucht man den hier??? Glaube ich weniger. VS_PIN &= ~(1 << VS_RESET); //RESET geht auf LOW _delay_us(3000); //Kurze Verschnaufpause VS_PIN |= 1 << VS_RESET; //RESET geht auf HIGH while (count--) //Um zu sehen, ob DREQ erst LOW dann HIGH wird
-
Thread
6502 Emulation auf AVR ?
Geht nicht. Dafür ist der AVR zu langsam und hat zu wenig Speicher.
ist dann etwa 0,9-6x so schnell wie das Original, im Durchschnitt der benutzten Befehle etwa 3x. Geht für solche Files so ohne Probleme. Gruß aus Berlin Michael
-
Thread
Variable wird nach verlassen der PCINT ISR wieder auf vorherigen Wert gesetzt
BUZZER | COIL; DDRC = 0x00; DDRD = LED_REF | LED_CTRL; PORTC |= SETTINGBUTTON; PORTD |= MDI_DATA | MDI_CLK; init_peripheral(); sei(); while(1) { _delay_ms
Frage: Warum passiert das? Wenn du einen Interrupt einschaltest, aber keine ISR schreibst, dann geht der Sprung in die zugehörige ISR in Leere. Damit landet der Ablauf des Codes beim Resetvektor.
-
Thread
The Siemens S65 132x176, 65536 color display with AVR
oops es geht natuerlich um das Sharp Display
Hm, mal das pn2 neugestartet, nun gehts?!
-
Thread
Neuling suche die Erleuchtung!
else sec++; if(min>=59) { hour++; min=0; } if(hour>=23) hour=0; PORTA=sec; PORTB=min; PORTC=hour; goto again; }; }
F_CPU in MHz." Das interpretiere ich so, dass 768 / 1MHz = 768µs sind. Mehr als 786µs bei 1MHz geht nicht, alles was höher eingetragen wird, wird auf 768µs begrenzt.
-
Thread
PCF8583
****** ' Konfiguration $regfile = "8515def.dat" $crystal = 3690000 $baud = 9600 Config Scl = Portc.7 ' I2C-Takt Config Sda = Portc.6 ' I2C-Daten CONFIG LCDPIN = PIN , DB4 = PORTA.4 , DB5 = PORTA.5 , DB6 = PORTA.6 ,
PCF8583 und Schaltjahr geht schon. Für das Jahr gibt es einen Zähler (year) von 0 bis 3. Wenn year==0 und month==2, dann läuft date bis 29. Wenn year!=0 und month==2, dann geht date nur bis 28. Normalerweise ist alle vier Jahre
-
Thread
ATmega32 mit GLCD resetet ständig
95 ret [/code] Eigentlich alles so, wie es sein sollte: DDRC ist komplett auf 0x00, und PORTC auch. So langsam habe ich das Gefühl bekloppt zu sein. Oder daß in PORTC irgendetwas nicht stimmt. (JTAGEN ist aus, Fuses 0xD9BF). Viele Grüße Nicolas
auch gegen einen Pull-Down-Widerstand High), obwohl er ein Eingang sein sollte. Ich bin jetzt von PORTC auf PORTB umgezogen, und das Phänomen läßt sich immer noch reproduzieren. Viele Grüße Nicolas
-
Thread
Rechteckgenerator mit Atmega8 nicht so einfach (Anfänger)
get_key_press( 1<<KEY1 ) || get_key_rpt( 1<<KEY1)) // Taster 1 freq 1Hz höher { PORTC ^= (1<<PC5); lcd_clear(); lcd_setcursor( 0, 0 ); lcd_string("Taste 2 repeat"); f++; lcd_label_uint32( 0, 1, "f:", f ); i = (F_CPU/(Prescaler8
kann (nämlich 1, 1.2, 1.5, 2 und 3 MHz), lohnt? Das war von Chris nur als Beispiel gedacht. Es geht halt darum, dass man generell dem Parameter einen Namen geben sollte, der seine Funktion beschreibt.
-
Thread
Spannungsmessung und AD wandler
dass ich unter nem BASIC compiler eine analoge spannung auslesen kann. etwa so: [...] config portc = input [...] spannung = portc.0 oder wie??
Hallo: und in Bascom geht das so ;-) $regfile ="m8def.dat" dim volt as word config adc=single,prescaler=auto start adc do volt=getadc(0) 'liest adc-kanal 0 ein print volt loop ps: der Mega8515 hat
-
Thread
Assembler wieder auf dem Weg nach vorn Gesperrt
Aber darum geht es doch in diesem Thread überhaupt nicht!
hat. Es geht schon lange nur noch darum, wie man dies auch Moby klarmachen kann.
-
Thread
mal wieder EA DIP204 LCD mit KS0073
jetzt eine .c Datei daraus gemacht!!! #include "uart.h" #include "lcd_test.h" #define LCD PORTC #define LCD_D DDRC #define LCD_PIN PINC #define RS 0 // Bit[0] --> Umschalten zwischen: Befehl(Low) und Daten (High) #define RW 1 // Bit[1] -->
pause(100); uart_putchar('B'); }; LCD&=~(1<<RW); //RW auf Low } geht aber immer noch nicht!!
-
Thread
Baustein mit 8-Bit Register gesucht
= 8 1/3 Takte Mit deiner Frage deutest du schon an, daß du weißt wie es mit den paar Takten geht. Nur raus damit!
hier mit einm µC zu lösen ist vergleichbar emit die 200m bis zum Bäcker mit dem Auto zu fahren. Es geht aber ........
-
Thread
Und wieder das Display
D.h. es geht jetzt ?
Ja, es geht. Ich kann nur die vierte Zeile nicht anwählen. Dann steht das immer in der ersten ganz rechts...?!