-
Thread
7-Segmentanzeige Multiplexer Schaltung ok?
nicht erreichen. Warum liest Du nicht die Beiträge, denen zu entnehmen ist, dass das so nicht geht. Der µC hat auch ein Datenblatt! Aber mehr darf ich Dir ja nicht schreiben :-(
Baumann schrieb im Beitrag #3754172: > Bau es doch erst mal so auf, damit Du siehst, daß es nicht geht. > ;-) Sie geht ja! Nur die Segmentwiderstände muß man vergrößern, um die Grenzwerte des MC einzuhalten. Und die Basiswiderstände kann man weglassen.
-
Thread
PIC 16F628A - LCD ansteuern
Und das hier: bsf PORTC, LcdRs ; Daten nop bsf PORTC, LcdE ; Enable LcdBus nop bcf PORTC, LcdE ; Disable LcdBus swapf LcdDaten, w andlw H'F0' movwf PORTD ; Lo-teil Daten schreiben bsf PORTC, LcdRs ; Daten nop bsf PORTC, LcdE nop bcf PORTC, LcdE ; Disable LcdBus nop bcf PORTC, LcdRs ;
-
Thread
Probleme mit LCDUhr
, solltest du etwas Zeit haben um das zu tun. Und wenn zwischendurch mal ein Interrupt verloren geht, ist es bei diesem *Testprogramm* kein Beinbruch. Es geht lediglich darum festzustellen, ob der Interrupt auch ausgelöst wird.
Vielen Dank! Jetzt gehts! :D Kann man jetzt eigentlich die Zeit auch in 00:00:00 noch einteilen? Gruß
-
Thread
Atemga16 Bascom Shiftin Problem PINA.0
Problem. und zwar. ich habe insgesammt 6 PINs am Atmega16 die ich mittels Shiftin abfrage. an PortC habe ich keine Probleme. PortC. 0,2,4,6 wenn ich jetzt aber PortA.0 & 2 Abfrage geht PortA.0 "anscheinend" nicht. "anscheinend" weil ich PortA.2 zuvor abfrage auf Signale um festzustellen ob was
Tach karsten, was heißt "geht nicht"? Poste erstmal den code und dann sehen wir mal weiter. Thor
-
Thread
Probleme mit 74HC273 als Porterweiterung
Der Code: [c] #include <avr/io.h> #include <avr/delay.h> #define LED0 PORTC |= (1 << PC5) #define LED1 PORTC |= (1 << PC4) #define LED2 PORTC |= (1 << PC3) #define LED3 PORTC |= (1 << PC2) #define LED4 PORTC |= (1 << PC1) #define LED5 PORTC |= (1 << PC0) #define LED6 PORTD |= (1 << PD5) #define LED7 PORTD |= (1 << PD4) #define LED8 PORTC |= (1 << PC5) #define LED9 PORTC |= (1 << PC4) #define LED10 PORTC |= (1 << PC3) #define LED11 PORTC |= (1 << PC2) #define LED12 PORTC |= (1 << PC1) #define LED13 PORTC |= (1 << PC0) #define
-
Thread
Hilfe bei SSD1289 Display Controller
= PORTC0 .equ D9 = PORTC1 .equ D10 = PORTC2 .equ D11 = PORTC3 .equ D12 = PORTC4 .equ D13 = PORTC5 .equ D14 = PORTC6 .equ D15 = PORTC7 .def temp0 = r16 .def temp1 = r17 .def temp2 = r18 .equ SteuerDDR
Speicherzugriff auf eine externe Adresse machen. Die ganzen Pins bedient der AVR dann automatisch. Das geht dann auch VIEL schneller - etwa Faktor 10. Außerdem kannst Du dann noch problemlos einen extra RAM-Chip anklemmen. fchk
-
Thread
Term vereinfachen
break; } } }[/c] Oder geht auch einfach [c]else p = 0;[/c] ?
void PortOn() { PORTC &= ~(1 << PC4); PORTB &= ~(1 << PB4) | (1 << PB3); } void PortOff() { PORTC |= (1 << PC4); PORTB |= (1 << PB4) | (1 << PB3); } void battery_routine(void) { if(release_battery_cut_off
-
Thread
Bascom Unerklärlicher Fehler im Programm
deklarieren Declare Sub On_int0 Declare Sub On_int1 'LCD Initialisieren 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 Cls Cursor Off 'PD2(Int0) und PD3(INT1) als Eingang , PD7 und PD7 als Servo und PB0 als
deklarieren Declare Sub On_int0 Declare Sub On_int1 'LCD Initialisieren 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 Cls Cursor Off 'PD2(Int0) und PD3(INT1) als Eingang , PD7 und PD7 als PB0(Servo) und PB0
-
Thread
Wie kann man Atmega8, L298 und einen Schrittmotor verbinden?
starts new load not by 0 } void cwC(uint16_t d_var) // move cw, pins 2-5, in 1/4 steps { PORTC = 0b00010100; long_delay_us(d_var); PORTC = 0b00011000; long_delay_us(d_var); PORTC = 0b00101000; long_delay_us(d_var); PORTC = 0b00100100; long_delay_us(d_var); } // main function int main
brauche... Ich will auch nicht, dass der Motor nach ein paar Minuten nach dem Inbetriebnahme kaputt geht. Deswegen L6207.
-
Thread
Wecker mit Solar und Ladeüberwachung bauen
parallel weiter und braucht dabei nur wenige µA. Nur einmal nachts während idealer Empfangsnbedingungen geht es automatisch in den Empfangsmodus zwecks Synchronisation. http://www.hkw-elektronik.de/shop/artikel/FUM-DCF.php Antennen gibt es dort auch für kleines Geld. Ich kann das nur empfehlen, damit
hwstack = 32 $swstack = 10 $framesize = 40 Config Lcd = 16 * 2 Config Lcdpin = Pin , Db4 = Portc.3 , Db5 = Portc.2 , Db6 = Portc.1 , Db7 = Portc.0 , E = Portc.4 , Rs = Portc.5 Config Lcdbus = 4 Cursor Off Config Pinb.1 = Output Config Pinb.4 = Output Config Pinb.5 = Output Config Pinb.3
-
Thread
AVR: µC geht nicht in den Idle-Mode
Ich weiß, dass es nachher noch weiter geht! Aber ich wollte die maximal erreichbare Genauigkeit, da ich mit dem Oszi alles kontrolliere. Aber darum geht es ja jetzt nicht. Ich möchte wissen, ob jemand einen Tipp hat, warum mein µC nicht in den Idle-Mode geht bzw. was ich vergessen oder falsch gemacht habe!
-
Thread
if - verschachteln - aber wie?
x_temp_ist <= y_temp_soll) && (!(PINC & (1<<WB)))) { //Fahre ins Wärmebad PORTC &= ~(1<<CW); PORTC |= (1<<CCW); while(!(PINC & (1<<WB))){} //solange ins Wärmebad fahren bis Anschlagtaster erreicht ist } else if ((x_temp >= z_temp_soll) && (!(PINC & (1<<KB)))) { //Fahre ins Kälteebad PORTC &= ~(1<<CCW); PORTC |= (1<<CW); while(!(PINC & (1<<KB))){} //solange ins Kältebad fahren bis Anschlagtaster erreicht ist } else{ PORTC &= ~(1<<CW); PORTC &= ~(1<<CCW);
-
Thread
LCD - ich verzweifele
YL162-90) 16*2. Angesteuert über folgenden Codeschnipsel [code] $regfile = "M8def.dat" Config Portc.3 = Output Config Lcdpin = Pin , Db4 = Portd.0 , Db5 = Portd.1 , Db6 = Portd.2 , Db7 = Portd.3 , E = Portb.0 , Rs = Portd.7 Config Lcd = 16 * 2 Do Lcd "Hallo Welt!" Toggle Portc.3 Waitms 1000
Wandler vorgesehen (Planung), weiß einer, ob das mit diesen Wandlern über Poti als Spannungsteiler geht? 5V -> -12V (0..-12V). Von der Stromaufnahme her gehts. http://www.reichelt.de/?ACTION=3;ARTICLE=35025;GROUPID=;SID=15FW9JnNS4AQ8AAEmmKKg6c5dee82459e3f34b5279a62164402d9 Danke
-
Thread
AD-Wandler + Portfunktionen bei Atmega8 verwenden
PortC ? Scheint kein PC zu sein....
ANALOGIN_KANAL)); //Kanal 0 if( (temp_in < aetztemp-HYSTERESE)&&bit_heiz==0) { PORTC|=(1<<PC4); bit_heiz=1; //HEIZUNG_EIN; } if( (temp_in > aetztemp+HYSTERESE) &&bit_heiz==1) { PORTC&=~(1<<PC4); bit_heiz=0; //HEIZUNG_AUS; } ... Auszug
-
Thread
Aus Schleife entfliehen
einen PIC 16F73 programmiert. Es funktioniert auch alles soweit das ich den Counter mit einem Taster (PORTC, 2) starten kann. Doch irgendwie schaffe ich es nicht das der Counter entweder durch einen weiteres drücken des Tasters bzw. bei erreichen der Zahlen 0000 stoppt. Der Counter wird gestartet sobald
auch vollkommen ignoriert. Ich sehe auch nicht, daß diese was mit nem Interrupt zu tun hat. Oder geht es jetzt garnicht mehr um die Routine "ZEAHLEN"? Peter
-
Thread
Dimmer flackert trotz Timer Interrupt
diese Routine z.B hat "nur" Schleifen und Stört: [c] void Eingaenge_abfragen (void) { PORTC |= (1<<PC4); // Mit PL alle Eingänge in das Register schieben. // PL auf High PORTC |= (1<<PC5); // PL auf Low PORTC &= ~(1<<PC5); // PL auf High PORTC |= (1<
} // Mit Clock weiterschieben // Clock auf High PORTC |= (1<<PC4); // Clock auf Low PORTC &= ~(1<<PC4); // Clock auf High PORTC |= (1<<PC4); } } [/c]
-
Thread
Probleme beim Blinklicht
(1000); PORTC = 0x00; _delay_ms(1000); } } [/c] Zuerst lege ich fest - PORTC = Ausgang ---> DDRC = 0xFF; Alle LEDs an PORTC sollen einmal aufleuchten für 2 Sekunden ---> PORTC = 0xFF; alle PINS
die ich dierekt ansteuere geht an und aus, also in diesem Fall die zweite LED an PORTC1. Ich kapiere nicht, warum die anderen Lampen alle brennen, wenn ich schreibe PORTC = 0x00; dann sage ich alle Ports sind LOW und dennoch sind
-
Thread
netIO geht nicht mit Browser IE+Safari
Hallo zusammen, ich habe die webpage.h von U.Radig für den netIO genommen und an meine Bedürfnisse angepasst. Im Webbrowser "Chrome" + "Firefox" funktioniert das ganze prima. Will ich aber im "IE7" + "Safari" den Server steuern, bleibt der Browser in einer Endlosschleife stehen und der Steuerbefehl wird nicht ausgeführt/übertragen. Ich habe die Seite bereits validieren lassen, aber es funktioniert trotzdem nicht mit den beiden o.g. Browsern. Seht ihr den Fehler? Gruß dr.schlau
-
Thread
Welchen Schieberegister besser geeignet (74HC165 oder 74HCT165)
aus? Vielen Dank! So sieht der Code dazu aus: [c] void Eingaenge_abfragen () { PORTC |= (1<<PC4); // Mit PL alle Eingänge in das Register schieben. // PL auf High PORTC |= (1<<PC5); // PL auf Low PORTC &= ~(1<<PC5); // PL auf High PORTC |= (1<
=0;i--) { // Mit Clock weiterschieben // Clock auf High PORTC |= (1<<PC4); // Clock auf Low PORTC &= ~(1<<PC4); // Clock auf High PORTC |= (1<<PC4); } // For Ende } [/c]
-
Thread
Programm mit einem Taster steuern
static SimpleTimer timer; static byte index = 0; if(!anforderung) { index = 0; PORTC &= ~maske; timer.stop(); return; } if(timer(zeit)) { PORTC = (PORTC & ~maske) | muster[index]; digitalWrite(LED_BUILTIN,!digitalRead(LED_BUILTIN)); timer.start
mit Unterstützung von Verifikations-Werkzeugen. Jaja, und immer schön blinken wenn man auf Klo geht.
-
Thread
Ganz kleines UART timing problem (?)
high part der Addresse) PORTB = (addr >> 10) & 0xFF; addh = (addr >> 18) & 0x3; PORTC = addh | N_PROG; PORTC = addh | N_PROG | HADR; PORTC = addh | N_PROG; //zweiter Teil der addresse (low part der Addresse) PORTB = addr & 0xFF; addh = (addr >> 8) & 0x3; PORTC = addh | N_PROG; PORTC = addh | N_PROG | LADR; PORTC = addh | N_PROG; //Ausgabe aktivieren PORTC = addh | N_PROG | OUTPUT_ENABLE; //
-
Thread
Atmega16 flashprobleme
> Ist das normal kann ich PORTC nicht als normalen > verwenden wie PORTA und PORTC? JTAG ausschalten Otto
danke für die Antworten. En knicks mach zum Thema JTAG ausschalten ich fress en Besen die Scheisse geht PORTC funktioniert. Danke schön Otto. @Christian: Prinzipiell gebe ich dir recht würde ja gern mit den 125khz leben aber wenn ich den CPU Takt hochsetze geht es auch nicht mit den 125khz.
-
Thread
Byte an PORTS ausgeben
PORTC ein Byte erhalte? Controller: ATMEGA 8a
halt mit dem PORT Toggeln: [c] PORTB = (PORTB & 0xC0) | (ucData & 0x3F); ucData >>= 6; PORTC = (PORTC & 0xFC) | (ucData & 0x03); [/c] Aber wie gesagt: nicht atomar
-
Thread
Schieberegister SN54HC595 mit Atmel atmega 88 ansteuern
Taster T */ //Parameterliste: unsigned int zaehler_taster =0; pin_aus(PORTC,PC4);// Ausgangssteuerung bleibt aktiv. pin_ein(PORTC,PC5);// Seriellen Eingang = 1. pin_ein(PORTC,PC1);// SChiftregister nicht reseten. while (1) { /* Ziel1: LED soll entsprechend
PB0))) { zaehler_taster++; if(zaehler_taster==1) { pin_ein(PORTC,PC2);//um 1 bit schieben. pin_aus(PORTC,PC2);//schieben beenden. pin_ein(PORTC,PC3);//speichern beginnen. pin_aus(PORTC,PC3);//speichern beenden. } }
-
Thread
PC => µC Daten senden um I/0 zu steuern
schafe ich es die werte für die I/o an den µC zu senden? Einfach einen Hex- oder Decimalwert zu senden geht ja leider nicht. MFG
>Einfach einen Hex- oder Decimalwert zu senden geht ja leider nicht. Wieso nicht ? Das mache ich jeden Tag.
-
Thread
Probleme beim Dividieren
Ja aber bei outp(z2,PORTC); //Hier tritt der Fehler auf! wird z2 doch gar nicht berechnet! z2 ist mit 1 initialisiert.
bin in C noch nicht so bewandert. Du hast natürlich Recht, dass es mit dem Divisionsrest einfacher geht.
-
Thread
74HCT165 Eingänge gehen nicht
EPL_Anzahl 1 // Anzahl der Eingangsplatinen void Eingaenge_abfragen () { PORTC |= (1<<PC4); // Mit PL alle Eingänge in das Register schieben. // PL auf High PORTC |= (1<<PC5); // PL auf Low PORTC &= ~(1<<PC5); // PL auf High PORTC |= (1<
bitte sagen wie ich das am schönsten machen kann? [c] void Eingaenge_abfragen () { PORTC |= (1<<PC4); // Mit PL alle Eingänge in das Register schieben. // PL auf High PORTC |= (1<<PC5); // PL auf Low PORTC &= ~(1<<PC5); // PL auf High PORTC |= (1<
-
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
AVR XPlained 328PB Freigabe/Nutzung von PCINT 21
> geht leider immer noch nicht Also bei mir läuft es; vielleicht besteht ein Missverständnis bezüglich der Funktion: nach Programmstart liegt C3 auf low, nach Drücken von Taster an D5 geht C3 *dauerhaft
#define F_CPU 16000000 #include <avr/interrupt.h> #include <avr/io.h> ISR(PCINT2_vect){ PORTC|=1<<PORTC3; } int main (void) { PORTD|=PORTD5; DDRC|=1<<PORTC3; PCICR|=1<<PCIE2; PCMSK2|=1<<PCINT21; sei(); while(1){} } [/c]
-
Thread
Problem mit ATmega162
mal die beiden Quelltexte. Quelltext C: #include <avr/io.h> int main (void){ DDRC=0xff; PORTC=0x00; int wert01; int wert02; while(1) { for(wert01 = 0; wert01 <= 10; wert01++){ PORTC=0x01; } for(wert02 = 0; wert02 <= 10; wert02++){ PORTC=0x00; } }//end_while(1)
} for(wert02 = 0; wert02 <= 10; wert02++){ PORTC=0x00; } }//end_while(1) }//end_main Neu: #include <avr/io.h> int main (void) { DDRC=0xff; PORTC=0x00; long wert; do { wert = 0; while(wert < 50000) { PORTC=0x01
-
Thread
Wie steuert man AVR Ausgänge richtig an?
Verständnis 2 Varianten: Variante 1: =========== DDRC = 0x00 // Anschlüsse auf Eingang schalten PORTC = 0x00 // Alle PortC auf LOW Wird nun einen Tastendruck erkannt wird mittels: DDRC = 0x01 // PortC.0 auf Ausgang schalten LED leuchtet Variante 2: =========== DDRC = 0xFF // Anschlüsse auf Ausgang schalten PORTC = 0xFF // Alle PortC auf HIGH Wird nun einen Tastendruck erkannt wird mittels: PORTC = 0x01 // PortC.0 auf LOW schalten LED leuchtet Welche ist nun die richtige Methode?
-
Thread
Stk500 switches
[code] Config Portc = Output Config Portb = Input Portc.3 = 1 Portc.2 = 1 Portc.1 = 1 Portc.0 = 1 Portc.5 = 1 Portc.6 = 1 Portc.4 = 1 Config Portb.0 = Input ' Pin0 von
LED flackert jetzt nämlich die ganze zeit... Ausserdem bleibt sie bei "Toggle" nicht an sondern geht nach loslassen der taste wieder aus... hab dann [code]Toggle Portc.2[/code] zu [code] Portc.2 = 1[/code] umbenannt und dann hat die LED richtig geblinkt... Lg
-
Thread
mit Interrupt globale Variablen verändern
include <avr/signal.h> char hour=13; // globale Variable void initialisation(void) { DDRC=0xFF; //PORTC als Ausgang PORTC=0xFF; //alle LEDs aus } INTERRUPT(SIG_OVERFLOW0)//Interrupt Timer0 Overflow { //... soll hier später die Variable hour verändern } int main (void) { initialisation(); if(hour
io.h> #include <avr/signal.h> char volatile hour= 13; void initialisation(void) { DDRC=0xFF; //PORTC als Ausgang PORTC=0xFF; //alle LEDs aus } int main (void) { initialisation(); while(1) { if(hour==13) { PORTC=0x00; } } return 0; } PS.: So sieht mein Makefile aus: #Makefile für
-
Thread
Atmega8 zu schnell/ungenau!
Db7 = Portd.3 , E = Portd.5 , Rs = Portd.4 Config Lcdbus = 4 Config Portd.7 = Output Config Portc.0 = Input Config Portc.1 = Input Config Portc.2 = Input Config Portc.3 = Input Config Portc.4 = Input Config Portc.5 = Input Cls Locate 1 , 1 Lcd "blub 1" Locate 2 , 1 Lcd
Und wie wär's, wenn man einfach nen NE555 nehmen würde, aber warum einfach, wenns auch kompliziert geht :)
-
Thread
Hilfe-LCD Problem
geschrieben. Und jetzt nochmal zu meiner schon oben stehenden Frage wie kann ich diesen code auf dem PortC meines AT90S4433 einsetzten damit das LCD am PortC auch wie am PortD das Wort "Test" ohne Fehler anzeigt??
bleiben,wenn man das LCD im 4Bit modus hat, nur noch 6 anschlüsse übrig (RS-E-D11-D12-D13-D14) und das geht sich genau am PortC aus denn das hat auch nub von PC0-PC5 also 6 I/O Pins. Ja 4Mhz. Ja genau so. Also wenn ich das LCD am PortC Habe habe ich folgende Pinbelegung: PC5 / E PC4 / RS
-
Thread
Interner PullUp eines Atmegas644
Hmm ganz so einfach geht das nicht leider :/. Ich habe mal die VCC leitung durchtrennt. Ausserdem habe ich den internen pull up aktiviert. DDRC &= ~(1<<PC4); // Schalter der Platine ( Auf Eingang) PORTC |= (PC4);
Ersetz mal die Zeile PORTC |= (PC4); durch PORTC |= (1<<PC4);
-
Thread
LCD Initialisierung mit Fleury
eingestellt habe, könnte das vlt mal einer überprüfen? Das LCD hängt an PortB (8-Bit Mode) RS -> PortC 0 RW -> PortC 1 E -> PortC 2 Ich habe mal die lcd.h angehängt, so wie ich sie zZ konfiguriert habe. Vielen Dank schonmal im Vorraus =) Gruß -Germo-
eh nur 1 oder 2 lines, hat mich auch schon etwas durcheinander gebracht, aber wie gesagt, mit icc gehts einwandfrei
-
Thread
Port Umschaltung Ein/Ausgang wie schnell geht das?
Hallihallo, ich habe an einem ATmega 644 einen PIN am PORTC den ich als Ein- und Ausgang nutzen möchte. Das ganze Umschalten funktioniert in der Simulation ganz gut doch wenn es real auf dem µC läuft habe ich das Gefühl das die Umschaltung etwas hinkt. Nun
2 Takte Haarspalterei an: Bei großen AVRs funktioniert das bei den höheren Ports nicht, da geht nur lds und sts. Demzufolge muß man die Pins erst lesen, modifizieren, schreiben. Gleiches bei den Datenrichtungsregistern. Haarspalterei aus
-
Thread
C-Script sieht den Wald vor lauter Bäumen nicht
PORTD|=(0<<i); Das geht so nicht. Du kannst keine 0 schieben.
Geht schon ;-) PORTD |= 0;
-
Thread
Verständnissproblem LCD 4-Bit Mode
Schau dir den Unterschied zwischen PORTC = irgendwas; und PORTC |= irgendwas; bzw. PORTC &= irgendwas; an http://www.mikrocontroller.net/articles/Bitmanipulation
nicht jede möglichkeit abgearbeitet werden kann, die auftretten könnte. Trotzdem allen Danke, Es geht nun. Wer sich selbst hilft, dem sollte geholfen werden. Mobi
-
Thread
AVR Programmierung C++
> ISR ... Kann ich die irgendwie in die Klasse mit einbinden? Ich glaube das geht leider nicht.
SwitchState() { if(PINB&(1<<pin_sw)) return 0; return 1; } void SetLED(int state) { if(state) PORTC|=(1<<pin_led); else PORTC&=~(1<<pin_led); } void SetFan(int state) { if(state) PORTC|=(1<<pin_fan); else PORTC&=~(1<<pin_fan); } void SetGainSig(int state) { if(state) PORTC |= (1
-
Thread
128x64 Grafik LCD An Atmega 8/16/32
schließe ich an PortA an meinem STK500 an. Der Rest der Leitungen wie D/I, R/W und CS1/CS2 liegt an PortC an.
Mh, in der dritten Zeile deines ASM-Codes steht ja warum es nicht geht;-) (HD44780=!KS108). Schau Dir das hier mal an: http://www.mikrocontroller.net/topic/108269 Grüße Seppel
-
Thread
LEDs zwischen zwei Ports - Programmfehler?
$crystal = 1000000 Ddrd = &B11111111 Ddrc = &B11111111 Do Portd = &B11111111 Portc = &B00000000 Waitms 500 Portd = &B00000000 Portc = &B11111111 Waitms 500 Loop
m64def.dat" $crystal = 1000000 Ddrd = &B11111111 Ddrc = &B11111111 Portd = &B11111111 Do Portc = &B00000000 'Einschalten Waitms 500 Portc = &B11111111 'Ausschalten Waitms 500 Loop Weniger Tipparbeit wenn Du &HFF bzw. &H00 verwendest.
-
Thread
Drehimpulsgeber entprellen
crystal = 16000000 $swstack = 50 $hwstack = 50 $framesize = 50 Config Lcdpin = Pin , Db4 = Portc.4 , Db5 = Portc.5 , Db6 = Portc.6 , _ Db7 = Portc.7 , E = Portc.3 , Rs = Portc.2 Config Lcd = 16 * 4 Cls Cursor Off Config Pinb.2 = Input Portb.2 = 1 Config Pinb.4 = Input Portb
nicht, sondern begrenzt nur unnötig die Schrittfrequenz. Spätestens bei einer Maschinensteuerung geht man damit fürchterlich baden.
-
Thread
IR Transistor empfängt zwei Signal bei einen Tasten druck(Flag 0 und dann Flag 1)
die LED geht auch aus. Okay. > Wenn ich aber Sleep dabei lasse. Geht mein Gerät nicht aus. Bzw es wird > nicht gesendet das IR-Frame. Aber meine Fernbedienung geht schon aus. Das ist merkwürdig. Ich bin
irsnd_send_data(&irmp_dat, TRUE); //ON Command senden um es auszuschalten _delay_ms(1000); //Warten PORTC &= ~(1<<LED_25); //Alle LEDS auschalten PORTC &= ~(1<<LED_50); PORTC &= ~(1<<LED_75); PORTC &= ~(1<<LED_100); systemOn = 0; //System dekativieren _delay_ms(
-
Thread
ATMega 168PB Interrupt Programmieren
kein erfolg. Poste mal den Quelltext - und zwar den richtigen. :-) Und delay() im Interrupt geht mal garnicht.
// Turns on INT0 sei(); // turn on interrupts*/ while(1) { PORTC|=(1<<PORTC0); //PINC0 ist über ein Kabel mit dem PORTD2 verbunden _delay_ms(500); PORTC&=~(1<<PORTC0); _delay_ms(10000); } } [/c] -------------------------------------------------
-
Thread
Probleme mit Motor an Atmega8/PWM
PORTC = 0b00000000; //PORTC = 0x40; //Daten ausgeben (1=Strom auf Pin, 0= kein Strom auf Pin) //PORTC = 0x40; //Hex-Schreibweise //PORTC = 0b01000000; //binär-Schreibweise //PORTC |= (1<<PC6); //Einzel-Bitmanipulation //PORTC &= ~(1<<PC5); //LED einschalten //PORTC |= (1<<PC5); //LED ausschalten DDRD = 0x00;
-
Thread
Problem mit ATMEGA16 / bread board / Netzteil
Eingangspannung mit einen 7805 stabilisiert (von 12 V auf 5V), auch wenn ich den zB. den +12V Pol berühre gehts dann... das Programm scheint auch ok zu sein, solange der ISP drann hängt läuft es! Der ISP macht wohl eine zusätzliche Masseverbindung!? [c] . . DDRC = 0xFF; // PC0..PC7 as output PORTC
, dank der 'Basis-Dauerverdrahtung'. > . > . > DDRC = 0xFF; // PC0..PC7 as output > > PORTC = 0x00; // all PORTC output pins Off PORTC? JTAG hast du abgeschaltet? Edit: Das mit dem JTAG ist schon ein Reflex, wenn irgendwas nicht geht und Port C involviert ist.
-
Thread
Timer1-Interrupt
Für den konkreten Fall würde folgendes ausreichen: TIMER: eor temp, temp out PORTC, R17 reti Gruß, Achim.
Sorry, richtig wäre TIMER: eor temp, temp out PORTC, temp reti
-
Thread
AD Wandler ADS8320
dabei. #ifdef ADS8320 uint get_adc() // 7822 und 8320 { uint temp; char n, samples=0; PORTC &= ~ADC_CS; // cs auf 0 n = SAMPLES_8320; do { PORTC &= ~ADC_CLK; // clk auf 0 kurz(); samples++; // kurz(); PORTC |= ADC_CLK; // clk auf 1 // kurz();
-bit erscheint n = 16; // immer 16 bit lesen while(n--) { // 16 bit einlesen PORTC &= ~ADC_CLK; // clk auf 0 temp <<= 1; // ergebnis schieben PORTC |= ADC_CLK; // clk auf 1 if(PINC & ADC_DAT) temp++; // bit 1 uebernehmen } PORTC &= ~ADC_CLK; //