-
Thread
Suche BASIC-Programmierer
Der eine kanns, der andre nich :) Es geht nur ums verstehen ;) daniel
Unterricht gestellt bekommen (unabhängig vom Fach) durch Copy&Paste aus dem Internet zu kopieren. Leider geht das nicht oft genug in der Hose, sonst wären die nicht bis in die Zwölfte gekommen... PS: Ich zähle 9 Threads, die von dir bezüglich des Themas eröffnet wurden. Ey, sorry aber, gehts noch?
-
Thread
Mit dem ATMega32 zwei Displays betreiben?
doch, das geht schon. Aber auch beim Schreiben musst du natürlich sagen, welches gerade gemeint ist. Falls du keine Angst vor C++ hast: ich habe hier irgendwann mal eine Version veröffentlicht, die ohne Änderungen
Ich kann in der Routine aber keine zwei Enables eintragen. #ifndef LCD_PORT #define LCD_PORT PORTC #endif #define LCD_DATA0_PORT PORTC /**< port for 4bit data bit 0 */ #define LCD_DATA1_PORT PORTC /**< port for 4bit data bit 1 */ #define LCD_DATA2_PORT PORTC /**< port
-
Thread
AVR unverständliche for Schleife
[c] PORTC = 0x00; PORTD = 0x00; wait( pause ); [/c] Welchen Sinn hat es die Leds 1ms auszuschalten, um sie dann 2µs leuchten zu lassen. PS: Die Wait geht ohne Hilfsvariable: [c] void wait (
Hallo, jetzt gehts. Danke für den heissen Tipp Lippi. Gute Nacht. HUE
-
Thread
Code auf Mega32 läuft nicht? Minimalcode
am µC mucken. habe im Code dann extra zum Test "nur" versucht, einen pin auf High zu schalten. Geht nicht! Hier der Code: [c] #define F_CPU 1000000 #include <avr/io.h> #include <util/delay.h> #include <stdio.h> #define IO_DDR DDRC #define IO_PORT PORTC #define SELF_HOLD
_delay_ms(100); } PORTC |= (1<<LED); PORTC &= ~(1<<SELF_HOLD); // selbsthaltung lösen µC stromlos!! return; } [/c] Dieser Code soll erst mal auf dem Entwicklungsboard laufen, um zu schauen, ob die Pins überhaupt
-
Thread
SPI: Bidirektionale Datenübertragung
das klappt nicht. Sobald ich die Portrichtung der MISO-Leitung des ATMEGA32 auf Ausgang setze, geht nix mehr. Viele Grüße Thomas
geschalten ist. Sobald ich diese Änderung auf dem Sklavecontroller compiliere und in den Flash speichere, geht die Datenübertragung garnicht mehr. (Master-Byte wird auf Sklave nicht mehr an PORTC ausgegeben). Gibts dafür eine Erklärung? Mfg Thomas
-
Thread
ATMega16 PORTA defekt?
zusammen, ich habe in einem Projekt ein 4x20 LCD an einem ATMega16,progge in C. Wenn ich das LCD an PORTC anklemme funktioniert alles wunderbar. jedoch an PORTA geht garnichts, obwohl genauso angeschlossen und auch in der lcd.h der Ausgabeport angepasst wurde. hier mal der Source-Code (Makefile im
> Wenn ich das LCD an PORTC anklemme funktioniert alles wunderbar. > jedoch an PORTA geht garnichts, obwohl genauso angeschlossen und auch in > der lcd.h der Ausgabeport angepasst wurde. In der von dir angehängten "lcd.h
-
Thread
LM235 Beschaltung
' LCD Data port at Port D DEFINE LCD_DBIT 0 ' LCD starting data bit = 4 DEFINE LCD_RSREG PORTC ' LCD register select on port D DEFINE LCD_RSBIT 4 ' LCD reset portD.4 DEFINE LCD_EREG PORTC ' LCD enable on port D DEFINE LCD_EBIT 5 ' LCD output on PortD.5 DEFINE
' LCD Data port at Port D DEFINE LCD_DBIT 0 ' LCD starting data bit = 4 DEFINE LCD_RSREG PORTC ' LCD register select on port D DEFINE LCD_RSBIT 4 ' LCD reset portD.4 DEFINE LCD_EREG PORTC ' LCD enable on port D DEFINE LCD_EBIT 5 ' LCD output on PortD.5 DEFINE LCD_BITS
-
Thread
USBasp+AVRdude+libusb=MEGA-STRESS
muss aber genau ein 12MHz sein, damit das mit dem USB klappt, also auf dem USBasp ! PS: Wenn PortC auf einem M32 nicht ganz geht, immer nach JTAG (De-)aktivierung schauen.
also ist alles ok nun sollte jetzt mit dem Fuse klappen sonst passiert das Tiny schreibt. >> Wenn PortC auf einem M32 nicht ganz geht, immer nach JTAG >> (De-)aktivierung schauen. also Fuses richtig setzen
-
Thread
GLCD Routinen ( KS0108, HD61202 )
Fehler gefunden, hatte ne Brücke beim Quarz, jetzt gehts. Aber leider unleserlich, wahrscheinlich ist mein Display im Popo. CU Bernd
auch gleich schreiben: [code]#define CD PA7 // Data/Control (RS) PinNumber[/code] PORTC wird für die Datenbits genutzt. Gruß - Markus
-
Thread
Zeitvergleich zweier "Uhrzeiten"
Wenn es zwischen 0:00 Uhr und 1:00 Uhr ist, muss hh 24 werden if ( hh == 00 ) { hh = 24; } // PORTC0: // Temperatur: var_array[10] TWert = var_array[10]*10; // Über Temperatur und Sensor für Fenster: var_array[10] - Sensor0 - PORTA0 // Wenn der Zeitraum über Mitternacht geht, addiere
0b00000001) == 0 ) { // PORTA0: Fenster geschlossen? if ( ow_array[0] < TWert ) { PORTC |= (1 << PC0); // ein } else { PORTC &= ~(1 << PC0); // aus } } else { PORTC &= ~(1 << PC0); // aus } } else { // Minuten- Check PORTC
-
Thread
AVR Ausgänge mit "Dauerfeuer" belegen
zb: [c] if(!(KEY_PIN & 0x01)) // Wenn Taste PortB.0 auf HIGH { PORTC |= (1 << PC0); // LED an PC0 umschalten _delay_ms (30); PORTC &= ~(1 << PC0); // LED an PC0 umschalten _delay_ms (30); } [/c] Wie würdet ihr das
[c] > if(!(KEY_PIN & 0x01)) // Wenn Taste PortB.0 auf HIGH > { > PORTC |= (1 << PC0); // LED an PC0 umschalten > _delay_ms (30); > PORTC &= ~(1 << PC0); // LED an PC0 umschalten > _delay_ms (30); > } > [/c] > > Wie würdet
-
Thread
Werden die AVR Mikrocontroller nach der Herstellung garnicht überprüft?
atmega16, bei einem ist der adc kaputt, bei anderem ist der Port a kaputt. Ist das normal, und wie geht man damit um?
so: http://www.mikrocontroller.net/articles/AVR-Tutorial:_IO-Grundlagen#Pullup-Widerstand geht das.
-
Thread
PC über USART auf MC und zurück
RXC))) // warten bis Zeichen verfuegbar { uart_putc(UDR); // Zeichen zurück senden PORTC ^= 0xff; // PORTC toggeln } } int main(void) { Portinit(); UARTinit(); while(1) { Usart_Rx(); } return(0); }
// } bis was passiert also quasi warten soll uart_putc(UDR); // Zeichen zurück senden PORTC ^= 0xff; // PORTC toggeln [/c]
-
Thread
Atmega16 100kHz Encodersignal
PORTC=((PORTC&0xC3)|encodervalue[i] ... Da musst Du den Port erstmal lesen, mit c3 verunden, encodervalue lesen, mit dem vorangegangenen verodern und dann in Port schreiben, das sind schon einige Schritte
schreib doch einfach direkt in Port, sind ja nur 4 Zustände, ergo 4 Zeilen Code, zur Not in ASM out PORTC, 0xirgendwas
-
Thread
Bascom EEprom
funktioniert - Zuweisung des Wertes von Integer-EEprom-Variable an Flashspeicher-Single-Variable geht nicht, nur an Flashspeicher-Integer-Variable, also zwischen EEprom und Flashspeicher nur gleicher Datentyp - Vergleich (>,<) zwischen Single und Integer geht nicht, nur zwischen gleichen Datentypen
$crystal = 5120000 'Quartzoszillator 'Display-Konfiguration Config Lcdpin = Pin , Db4 = Portc.1 , Db5 = Portc.2 , Db6 = Portc.3 , Db7 = Portc.4 , E = Portc.5 , Rs = Portd.0 Config Lcd = 16 * 2 'Display-Typ Dim Ganzzahl As Integer Dim Kommazahl As Single Dim Ee_ganzzahl
-
Thread
RC Empfänger auslesen, kein konstanter Wert
einem Timer mit Prescaler 8 und einer Taktfrequenz von 4MHz. Beim senden der Impulse an ein Servo geht es wunderbar nur beim Empfangen hab ich eben +/- 1. Das lässt dann wiederum mein Servo zittern.
Hm, ich kapier' Deinen Source nicht, aber willst Du wirklich, dass if (!(PORTC = 0b00000001)) { PORTC = 0b00000001; } Sollte das nicht evtl. if (!(PORTC == 0b00000001)) { PORTC = 0b00000001; } heissen? Kommt mehrmals vor.
-
Thread
Dmx mit Bascom generiert
X = 0 Dmx_werte(1) = 255 Do If X = 0 Then Portc.3 = 1 Portc.4 = 1 Toggle Portc.3 'Reset Waitus 88 Portb.0 = 1 Waitms 10 Print 0 Waitus 20
senden End If If Sendezaehler > 24 Then Gosub Senden '500ms Sendetakt Portc.1 = 0 Power Idle Portc.1 = 1 Loop Senden: 'Break Ausgang = 0 Portc.0 = 1 For I = 0 To 60 nop Next I Portc.0 = 0 Ausgang = 1 For I = 0 To 20
-
Thread
If-Schleife übersprungen
Wenn ich die Blöcke tausche, gehts auch nicht. Es muss irgend etwas Prinzipielles sein.
K. S. schrieb im Beitrag #3208417: > Wenn ich die Blöcke tausche, gehts auch nicht. > Es muss irgend etwas Prinzipielles sein. was geht da nicht, wird der 1. Block wieder übersprungen oder diesemal der 2.?
-
Thread
1V am Ausgangsport des Atmega8
einen Eingang und 6 Ausgänge konfiguriert habe und ich dann ein Register auf dem Port ausgebe (out portc, r16). Was passiert da mit meinem Eingang? Danke nochmal. Gruß, Russell
Hi Es geht aber um PortB Pin6. MfG Spess
-
Thread
Int 0 und timer bitte um Hilfe
$regfile = "m8def.dat" $crystal = 4000000 Config Timer1 = Timer, Prescale = 64 Config Portc = Output Config Portd.4 = Output Led Alias Portc.0 Led2 Alias Portc.1 Led3 Alias Portc.2 Led4 Alias Portc.3 Led5 Alias Portc.4 Led6 Alias Portc.5 Led7 Alias Portd.4 Dim A As Single Dim
$regfile = "m8def.dat" $crystal = 4000000 Config Timer1 = Timer, Prescale = 64 Config Portc = Output Config Portd.4 = Output Led Alias Portc.0 Led2 Alias Portc.1 Led3 Alias Portc.2 Led4 Alias Portc.3 Led5 Alias Portc.4 Led6 Alias Portc.5 Led7 Alias Portd.4 Dim A As Single Dim
-
Thread
Frequenzmessung mit Timer0 ohne ICP
Geht der CompareB überhaupt wenn FastPWM eingeschaltet ist? Ist komisch das die Frequenz nur bis 35Hz geht, liegt des am Überlauf?
n==0) {PORTB &= ~(1<<2); PORTD &= ~(1<<0); PORTC &= ~(1<<5);} else {PORTB |= (1<<2); PORTD |= (1<<0); PORTC |= (1<<2);} } //dann so verwenden: alle_LEDS_setzen(1); //alle LEDs ein alle_LEDS_setzen(0); //alle LEDs aus [/c] > Das
-
Thread
Einen einzelnen Pin abfragen
DDRA |= (1<<PA2); PORTA |= (1<<PA2); while (1) { if ( PINB & (1<<PB7) ) { PORTC = 0xff; } else { PORTC = 0x00; } } } Damit gehts nicht :( ALso an PORTC liegt auch ohne gedrückten Taster schon 1 an... :/
Du ziehst ja den PORTC auf 1 und mit dem Taster auf 0, "umgekehrt" ;)
-
Thread
Thermometer mit ds18s20 und LED Annzeige
so hab ich geändert... decr Digit If Digit = 0 Then Digit = 4 End If aber das geht leider nicht...
: Portc.3 = 0 :Digit1 = 1 'C.3=Digit Transistor End If End If gruß, Tobias ps wenn jemand eine "sauberere Idee hat gerne posten
-
Thread
3 bit Zähler in der Mitte eines Ports ausgeben ?
Hallo, ich habe ein riesen Problem, ich habe einen 3 bit Zähler und den möchte ich anstelle von Portc 0 - Portc 2, auf Portc 3 - Portc 5 ausgeben? Beim uC handelt es sich um einen Atmega16 , und das ganze wird im Bascom geschrieben. Könnte mir da jemand weiterhelfen? Das wäre super !
nix schieben,maskieren oder sonstigen quatsch :) dass geht doch *ganz* einfach mit 3 Befehlen portc.3 = zaehler.0 portc.4 = zaehler.1 portc.5 = zaehler.2 nicht verzahgen, Charly fragen ;) vlG Charly
-
Thread
ATXmega32A4 & MCP4018 I²C dig. Poti Problem
if(TWIC_MASTER_STATUS & (1<<TWI_MASTER_ARBLOST_bp)) { twiname->MASTER.CTRLA = 0; PORTC.DIRSET = PIN1_bm; for(uint8_t i=0;i<9;i++) { PORTC.OUTSET = PIN1_bm; _delay_us(20); PORTC.OUTCLR = PIN1_bm; _delay_us(20); } PORTC.DIRCLR = PIN1_bm;
ich verstehe es einfach nicht, dass kann doch nicht sein. Atmel Lib: Ich initialisiere: PORTC = Ausgang PORTC SDA/SCL = WiredANdPullUp (ext. Pullup ist auch vorhanden) TWI_MasterInit(&twiMaster, &TWIC, TWI_MASTER_INTLVL_HI_gc, TWI_BAUD(F_CPU, 100000)); sei(); TWI_MasterWrite(&twiMaster
-
Thread
10 Kanal Phasenanschnitt
= (1 << CS21); //Start timer for(i = 0; i < 5; i++) { if(lamp_state[i] == 0) { PORTC |= (1 << i); //lampstate = 0 => on all the time } else { PORTC &= ~(1 << i); } } } [/c] Und die Timer ISR, da wo der eigentliche Spaß passiert : [c] ISR(TIMER2_OVF_vect
läuft mit 8mhz. Falls du ein paar Zahlen nachrechnen möchtest. Und PORTC geht zu den Optokopplern für die Triacs. Der Rest müsste sich eigentlich erschließen. Ich fahr jetzt erstmal in Urlaub. Gruß Sebastian
-
Thread
Atmel Studio 6 kompiliert Nixie Programm für ATmega8 nicht
<4) + (uint8_t)(11); } else { byte = (uint8_t)(10<<4) + (uint8_t)(value); } sbi(PORTC, (group+1) % 3); outp(255,PORTD); cbi(PORTC, (group+1) % 3); sbi(PORTC, group); outp(byte,PORTD); cbi(PORTC, group); } [/c] Ich habe jetzt Atmel Studie 6 sowie (vermutlich überflüssigerweise
<4) + (uint8_t)(11); } else { byte = (uint8_t)(10<<4) + (uint8_t)(value); } sbi(PORTC, (group+1) % 3); outp(255,PORTD); cbi(PORTC, (group+1) % 3); sbi(PORTC, group); outp(byte,PORTD); cbi(PORTC, group); } Error List: Warning 1 #warning "This header file is
-
Thread
Anpassung TCP-IP Stack
uip_arp_timer(); //arptimer = 0; zaehler = 0; } } else { PORTC |= (1 << 2); if(BUF->type == HTONS(UIP_ETHTYPE_IP)) { PORTC |= (1 << 3); uip_arp_ipin(); uip_input(); if(uip_len > 0) { PORTC |= (1 << 4); uip_arp_out(); enc28j60PacketSend(uip_len,uip_buf); } } else if(BUF->type == HTONS(UIP_ETHTYPE_ARP)) { uip_arp_arpin();
-
Thread
SPI für ADC MCP3204 auf ATXMega256A3 initialisieren
%%%%*/ void PSIBusIni( void ) { /* Init SS pin as output with wired AND and pull-up. */ PORTC.DIRSET = PIN4_bm; PORTC.PIN4CTRL = PORT_OPC_WIREDANDPULL_gc; /* Set SS output to high. (No slave addressed). */ PORTC.OUTSET = PIN4_bm; /* Initialize SPI master on port C. */ SPI_MasterInit
%%%%%%*/ void PSIBusIni(void) { /* Init SS pin as output with wired AND and pull-up. */ PORTC.DIRSET = PIN4_bm; PORTC.PIN4CTRL = PORT_OPC_WIREDANDPULL_gc; /* Set SS output to high. (No slave addressed). */ PORTC.OUTSET = PIN4_bm; /* Initialize SPI master on port C. */ SPI_MasterInit
-
Thread
Atmega8 / STK500 und PORTC
der 10 pol Verbinder vom PORTD ab. Da ich aber immer noch einen Taster benötige, habe ich auf PORTC umgeschwenkt und siehe da nichts geht. In den Foren steht etwas von JTAG abschalten - ich finde aber keine vernünftige Lösung. Nun die Fragen : Kann ich PORTD so konfigurieren für Ein- und
Uwe Jetzinger schrieb: > Da ich aber immer noch einen Taster benötige, habe ich auf PORTC > umgeschwenkt und siehe da nichts geht. > > In den Foren steht etwas von JTAG abschalten - ich finde aber keine > vernünftige Lösung. Der Mega8 hat kein JTAG > > Nun die Fragen : >
-
Thread
AVR-AtMega8 Bascom Probleme
regfile = "M8def.dat" $crystal = 1000000 $hwstack = 100 $swstack = 100 $framesize = 100 Config Portc.0 = Output Config Portc.1 = Output Config Portc.2 = Output Config Portc.3 = Output Portc.0 = 1 Portc.1 = 1 Portc.2 = 1 Portc.3 = 1 End [/code] Grundschaltung: http://www.kreatives-chaos.com
ist überall gleich. So um die 1V(bei 5V Eingangsspannung). Habe auch noch einen 2ten Mega8. Bei dem geht es auch nicht.
-
Thread
PORTS schalten nicht
festgelegt und das Abschalten der Jatg Fuses bringt keinen unterschied... es sieht sogar so aus das z.B PORTC 1 immer hin und her Springt... zwischen 0 und 3.5V
; DDRD = 0xFF; while(1) { PORTD = 0xFF; PORTA = 0xFF; PORTB= 0xFF; PORTC = 0xFF; } }
-
Thread
Problem beim auslesen den IIC
1 // SDA Port D, Pin 1 #define SCL 0 // SCL Port D, Pin 0 #define SDA_PORT PORTC // SDA Port C #define SCL_PORT PORTC // SCL Port C [/C] Du musst SDA an PC1 hängen und SCL an PC0 und *NICHT* an Port D wie im Kommentar oben. Erste Anweisung
darin, dass sich der Tempsensor nicht angesprochen füllt.. die zeilen #define SDA_PORT PORTC // SDA Port C #define SCL_PORT PORTC // SCL Port C hab ich aus peter f´s i2cmaster.S rauskopiert weil ich snst niergends im programm auser in der datei i2cmaster.S eine
-
Thread
AVR + 74HC165 + UART
=1; if(PINC & (1<<PINC0)) Data_to_send[a] |= 1; PORTC |= (1<<Input_Clock); // Clock Flanke erzeugen um Register um eine Stelle zu schieben PORTC &= (0<<Input_Clock); //Clock wieder löschen } }
=1; if(PINC & (1<<PINC0)) Data_to_send[a] |= 1; PORTC |= (1<<Input_Clock); // Clock Flanke erzeugen um Register um eine Stelle zu schieben PORTC &= ~(1<<Input_Clock); //Clock wieder löschen } }
-
Thread
Einlesen von Tastern mit Entprellheader
[c] #define TASTERPORT PORTC #define TASTERBIT PINC5 [/c] von einem Port liest man über das PINx Register ein und nicht über das PORTx Register. Code nicht einfach gedankenlos übernehmen. Die Zeile hier [c] if(zustand
if Ausdrücke? PS: Hier siehst Du, wie einfach es ist, Text auf dem PDF heraus zu kopieren. Das geht einfach so, genau wie bei einer Textdatei.
-
Thread
Pollin 16080 Touch mit ATMEGA32 und BASCOM
Geht leider nicht .... Warum auch immer ...
Ratlos ...... geht auch angemeldet nicht mehr ...
-
Thread
Peltier PWM ATMEGA48
= Output Config Pinb.1 = Output Config Portd.6 = Output Config Lcdpin = Pin , Db4 = Portc.3 , Db5 = Portc.2 , Db6 = Portc.1 , Db7 = Portc.0 , E = Portc.4 , Rs = Portc.5 'Display Parameter Config Lcd = 20 * 2 'config LCD Cursor Off Config
voneinander unabhängige PWMs erzeugen. Ist es vllt. eher so, das die Betriebsspannung in die Knie geht und deswegen der Lüfter langsamer wird? Lass dir auf das LCD doch mal die PWM Werte ausgeben und mess auch mal die Betriebsspannung, während du an der PWM rumdrehst.
-
Thread
DS18B20 mit Atmega8 bekomme nur 1 empfangen
Else Locate 2 , 10 Lcd " " ; Temp_string ; Chr(0) ; "C" End If If Temp_soll >= Temp_ist Then Portc.0 = 0 Else Portc.0 = 1 End If If Pinc.3 = 1 And Temp_soll < 300 Then Temp_soll = Temp_soll + 1 End If If Pinc.2 = 1 And Temp_soll > -150 Then Temp_soll = Temp_soll - 1 End If Waitms
Ich sehe gerade, dass 2MHz auch noch geht, aber bei 1MHz bekomme ich dein Programm nicht zum Laufen.
-
Thread
ATXMEGA, TWI und die internen pullups
TC_CLKSEL_DIV8_gc; // Activate timer 0 and divide system clock by 8 => f=4MHz, t=250ns // Setup PORTC pin2 & pin3 as output to toggle status LEDS PORTC.DIR = PIN2_bm | PIN3_bm; // Set pins as output PORTC.OUT = PIN3_bm | PIN3_bm; // Switch LEDs off // Setup TWI bus TWIE.MASTER.BAUD
PORTC.OUTSET = PIN3_bm; // Reset TWI-Busy status LED // Send TWI data i = 0; do { // Send one byte to TWI slave PORTC.OUTCLR = PIN3_bm; // Set TWI-Busy status LED
-
Thread
HD44780-LCD an ATMega16 reagiert nicht auf Programm
programmiert wird über ISP mittels Atmel AVRISPmkII. Das Display ist wie folgt angeschlossen: LCD-DB7 an PORTC7 LCD-DB6 an PORTC6 LCD-DB5 an PORTC5 LCD-DB4 an PORTC4 LCD-DB3 an GND LCD-DB2 an GND LCD-DB1 an GND LCD-DB0 an GND LCD-RW an GND LCD-RS an PORTB2 LCD-EN an PORTB4 Nach Anlegen der Versorgungsspannung
an das Programm angepasst. Hast du nicht. Denn mit /dem/ Code ist diese Belegung LCD-DB7 an PORTC7 LCD-DB6 an PORTC6 LCD-DB5 an PORTC5 LCD-DB4 an PORTC4 LCD-RS an PORTB2 LCD-EN an PORTB4 erst mal schlicht und einfach gesagt nicht möglich. Dieser Code geht davon aus, dass alle LCD-Anschlüsse
-
Thread
Problem mit if-Abfrage
lst-Datei Quellcode: if ((PINB & 1<<3) == 1) /*((PINB & _BV(3)) == 1) (PINB &~8) */ PORTC=127; else PORTC &=251 ; PORTC=255; lst-file { if ((PINB & 1<<3) == 1) /*((PINB & _BV(3)) == 1) (PINB &~8) */ 3a2: 86 b3 in r24, 0x16 ; 22 3a4: 99 27
0 3aa: 01 97 sbiw r24, 0x01 ; 1 3ac: 19 f0 breq .+6 ; 0x3b4 PORTC=127; else PORTC &=251 ; 3ae: aa 98 cbi 0x15, 2 ; 21 PORTC=255; 3b0: 25 bb out 0x15, r18 ; 21 3b2: f7 cf rjmp .-18 ; 0x3a2 3b4: 35 bb
-
Thread
ATmega32 rennt nur mit ISP-Adapter
Programm setzt nur eine LED? Programmiere mal ein Blinklicht. [c] int main() { long i=0; PORTC =0xFF; while(1) { i++; if(i==1000000) { if ( PORTC ==0xFF) { PORTC =0x00; } else { PORTC =0xFF; }
ISPporgrammer auch ohne Strom etwas in der hinsicht... Mach jetzt einfach immer den resetdraht ab und denn gehts... Sicher hat jemand hier auch eine ordentlich erklärung ;) Vielen Dank erstma...
-
Thread
RFM01 Problem
lfuse D4 hfuse D9 */ #include <avr/io.h> #define DDR_IN 0 #define DDR_OUT 1 #define PORT_SEL PORTC #define PIN_SEL PINC #define DDR_SEL DDRC #define PORT_SDI PORTC #define PIN_SDI PINC #define DDR_SDI DDRC #define PORT_SCK PORTC #define PIN_SCK PINC #define DDR_SCK DDRC #define PORT_SDO PORTC #define PIN_SDO PINC #define DDR_SDO DDRC #define PORT_LED PORTB #define DDR_LED DDRB #define PB7 7 #define PB6 6// | #define RFXX_SCK PC1// | #define RFXX_SDO PC3// |RF_PORT #define RFXX_SDI
-
Thread
Atmega162 macht nach Aus-Einschalten blödsinn
einen Reset mache, über den Pin, dann läuft er so wie er soll aber sobald der Strom weg war dann geht es nicht mehr...
Ich lesen das UDR0 und UDR1 nicht aus, somit bleibt es im buffer und der Atmel hängt sich auf.. Nun geht alles.
-
Thread
Aufschlagwechsel
externe schaltung. ok, etwas übertrieben wenn es auch in software geht, aber es geht.... du könntest z.b. indirekt auf das bit an portc zugreifen. mach zwei variablen in denen drinsteht welches bit gerad welche funktion hat und ändere alle funktionen die auf diese bits
Bit-Swapping? in C: if (PORTC & (1<<PC6) { PORTC &= ~(1<<PC6); // Pin PC6 löschen } else { PORTC |= (1<<PC6); // Pin PC6 setzen } dito für PC7... in ASM vielleicht so: SBIS PORTC,6 rjmp PC6setzen
-
Thread
LCD mit 2 unabhängigen Controllern
angeschlossen Dim ___lcdno As Bit 'zum umschalten zwischen den kontrollern Config Lcdpin = Pin , E = Portc.2 , E2 = Portc.3 , Rs = Portc.0 , Db4 = Portc.4 , Db5 = Portc.5 , Db6 = Portd.6 , Db7 = Portd.7 Config Lcd = 40 * 4 ___lcdno = 0 'Obere Hälfte Initialisieren Initlcd ___lcdno = 1 'untere
Irgendwie geht es auch so wie beschrieben nicht. Ich benutze den Port a an einem Mega128 und versuch auch schon seit tagen dieses Problem zu lösen (Gleiches Display). Ich bekomme aber immer wieder den Fehler "no
-
Thread
Bascom Variablen
lezten Beispiel nicht :-) Weiss egrade nicht mehr genau wie die in PAScal lauteten aber im PRinzip geht es so
Port B , ' $regfile = "m32def.dat" $crystal = 8000000 'SDA und SCL definieren Config Sda = Portc.1 Config Scl = Portc.0 Dim X As Byte Dim A As Byte Dim B As Byte Dim Lesen As Byte CLS Do '---- schreibe
-
Thread
Hoher Strom bei Taster am Eingan
/delay.h> void main (void) { int I; DDRA = 0xFF; DDRB = 0xFF; DDRC = 0x00; PORTC = 0xFF; while(1) { PORTA = ~I; PORTB = ~PINC; //PORTC = ~I; _delay_ms (100); if (PINC == 0b11111110) { I++; } if (PINC== 0b11111101)
OK. Ähm. Asche auf mein Haupt Ich habs falsch Beschrieben. die Tasten hängen natürlich an PortC
-
Thread
Bit 2 bis 5 als EINE Variable ansprechen
Bits 0-3 gesetzt anstatt Bit 2-5. Ich suche irgendwas in der Form von: #define BCD_Output [PORTC.2;PORTC.3;PORTC.4;PORTC.5] Vielleicht könnte ich selbst einen Datentyp definieren (#typedef) aber ich weiss nicht, was ich schreiben soll...
nicht, ob CV mit dieser Terminologie arbeitet, aber so ungefähr wird es gehen: #define LCD_PORT(X) PORTC = ((PINC&0xC3)|X) Beim GCC: #define LCD_PORT(X) outp((inp(PINC)&0xC3)|X,PORTC) Gruß Olaf
-
Thread
Portansteuerung
while(1) { if (M >=1) Richtung=links; else Richtung=rechts; PORTC |=(Richtung<<1) ; // Drehrichtung if (Schritte <= 1200) { PORTC |=(1<<0) ; _delay_ms(0.020); // SM Enable bevor Timer2 eingeschaltet wird
es ist ok. Wer radfahren lernen will, muss auch runterfallen. Die selbst gemachte Erkenntnis 'so gehts nicht' ist oft mehr wert als eine vorgekaute Lösung.