Hallo liebe Community, Bin Anfänger und scheitere schon an dem setzten eines Ausgangs. Als ISP-Programmer benutze ich den "mysmartUSB MK 2". Als Controller habe ich den Atmega328P. Außerdem arbeite ich mit dem AVR Studio 6. Ich habe mir mein eigenes Testboard zusammen gebaut. ACC gegen Gnd enthällt einen 100nF Kondensator genauso wie der RESET Pin. Desweiteren ist der Reset Pin mit einen 10k Pullup-Widerstand versehen. Am ausgang habe ich eine einfache LED mit 150 ohm Vorwiederstand geschaltet. Zum brennen des Chip's habe ich das mit dem Programmer mitgelieferte "myAVR_ProgTool" verwendet. Das schreiben in den Flash und eeprom war auch erfolgreich, wenn ich die Daten anschließend wieder auslese, sind sie auch vorhanden und Identisch. Zum Betrieb des Chip's reicht doch die Beschaltung von ACC, RESET, GND, der Testeingang (PB0) sowie der Testausgang (PC5)aus, oder nicht? Ich habe die Spannungen am Reset und acc Pin gegen gnd gemessen, sie liegt an. Habe auch direkt am Ausgang mal gemessen, es wird keine Spannung ausgegeben. Woran liegts? Hier der Programm Code: (Hatte erst nur die Schleife, dann habe ich das mit dem zwangssetzen des Ausgangs Probiert) #include <avr/io.h> int main(void) { DDRB = (0 << DDB0); //Port B Anschluß 0 als Eingang definieren DDRC = (1 << DDC5); //Port C Anschluß 5 als Ausgang definieren while(1){ if (PINB & (1 << PB0)){ PORTC = PORTC & (1 << PC5); } else{ PORTC = PORTC & (1 << PC5); / } PORTC = (1 << PC5); } } Danke schon mal im Vorraus.
Michi schrieb: > Treter_Peter schrieb: >> ACC, RESET, GND, > Vcc vergessen Ich komm mit den Bezeichnungen immer sowas von durcheinander. Das Datenblatt hilft immer weiter :)
Ups Tippfehler, ACC = VCC. Acc gibt es ja auch nicht. :-) Versteh ich das richtig, das AVCC und AGND auch angeschlossen werden müssen? Im Datenblatt stand folgenendes: AVCC is the supply voltage pin for the A/D Converter, PC3:0, and ADC7:6. It should be externally connected to VCC, even if the ADC is not used. If the ADC is used, it should be connected to VCC through a low-pass filter. Note that PC6...4 use digital supply voltage, VCC. PC5 sollte doch die Spannung über die digitalversorgung VCC bekommen, oder hab ich das falsch übersetzt? Danke.
DDRB = (0 << DDB0); macht keinen Sinn richtig Waere DDRB &= ~(1 << DDB0); kannst Du aber am Programm Start auch weglassen, da die Pins nach dem Einschalten alle auf Eingang stehen. Treter_Peter schrieb: > while(1){ > if (PINB & (1 << PB0)){ > PORTC = PORTC & (1 << PC5); auch das macht hier keinen Sinn richtig ist PORTC &= ~(1 << PC5); > } > else{ > PORTC = PORTC & (1 << PC5); / ebenso hier > } > PORTC = (1 << PC5); und hier ist PORTC |= (1 << PC5); die richtige Wahl > > } > }
Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.