Man kann mittels PWM die Led dimmen, der Strom ist aber immer so groß wie mit dem Widerstand berechnet. Mit der PWM veränderst du nur den Mittelwert.
MfG Hannes
PWM ist sicherlich eins der interessanten Themen am Anfang. Damit müsste ich doch auch ein Dimmen einer LED emulieren können, oder?
Erstmal mach ich mich nacher an die Pinbelegung des AVRIPS MKII. Ich bin noch nicht so ganz schlüssig, wie die 6 Pins belegt sind.
Geändert von Cysign (30.06.2012 um 13:52 Uhr)
Man kann mittels PWM die Led dimmen, der Strom ist aber immer so groß wie mit dem Widerstand berechnet. Mit der PWM veränderst du nur den Mittelwert.
MfG Hannes
So, ich hab eben mal ein bisschen Zeit in meine Vorbereitungen investiert.
Hab mir n paar Stecker gebaut, damit ich alles aufm Breadboart zusammenschubsen kann und dann hab ich meinen RS232-Dongle als Stromquelle missbraucht und den AVRISP mkII angeschlossen.
Eine LED zeigt mir an, dass überhaupt Strom beim µC ankommt. Soweit so gut.
AVR-Studio hat auch gleich meinen AVRISP mkII in der Firmware geupdatet.
Schöne Sache.
Scheinbar wird auch der ATTiny2313 erkannt.Im Connect-Dialog kann ich zumindest die Fuse-Bits sehn.
Wenn ich im Tab "main" jedoch die Signatur des ATTiny auslesen möchte, sagt mit AVR Studio, dass die Signatur nicht mit dem ausgewählten Gerät übereinstimmt.
Ich bekomme0x00 0x00 0x00 zurück.
Da ich unter http://www.mikrocontroller.net/topic/161971 folgendes gelesen habe:
hab ich unter Main - Settings die ISp-Frequent auf 1Mhz gestellt.Hab den Fehler gefunden. Hatte ein Beitrag gelesen wo der Auslieferzustand erwähnt wird. 8 Mhz und CKDIV8. Also Takt geteilt durch 8 sind 1 Mhz. Bei meiner Unkenntnis habe ich die ISP Frequenz auf 1 MHZ gestellt, also weniger als ein 1/4 Takt des Prozessor. Richtig ist 250 MHz bei 1 Mhz dann hat's funktioniert. Wenn der CKDIV8 deaktiviert wird kann die ISP Frequenz wieder höher sein.
Allerdings ist mir jetzt noch nicht so ganz klar, wie ich ein Programm schreiben kann und wie ich es übertrage, um zu testen, ob es funktioniert.(die grünen LEDs sind vom AAVRISP mkII, die blaue zeigt mir lediglich, dass der ATTiny2313 ne Versorgungsspannung hat und die rote LED ist der RS232-Dongle, den ich lediglich als Stromversorgung nutze...am µC selber hängt noch ne weisse LED, die aber ohne Programm nicht leuchten kenn xD )
Statt des I²C-Pins hab ich nun für meine LED den PB4 (OC1B/PCINT5) gewählt, damit ich nicht gleich für mein erstes Beispiel-Programm an den Fuses rumschrauben muss.
Außerdem hab ich bei den Fuses eh nicht die richtige für das Deaktivieren des I²C gefunden...
Ist es egal, welche Debuggingumgebung ich nutze?
Die I2C Schnittstelle wirst du in den Fuses nicht finden. Die musst du mit deinem geschriebenen Programm konfigurieren. Was du wo hinschreiben musst steht im Datenblatt unter "Universal Serial In terface - USI" da du hier nicht nur den I2C sondern auch den SPI (wird u.A. auch zum Programmieren per ISP verwendet) einstellen kannst. In den Fuses kannst du nur für die JTAG Schnittstelle (wird zum Debuggen verwendet) etwas einstellen. Alle anderen Sonderfunktionen der I/Os musst du in deinem Programm konfigurieren.
Es ist eigentlich egal welches Programm du verwendest solange es die Atmels unterstützt. Ich verwende das normale AVR Studio (noch in der Version 4). Ich programmiere mit dem USB AVR Lab von www.ullihome.de, mit dem Debuggen habe ich noch nichts gemacht. Zum Debuggen des Programmes verwende ich Leds zur Statusanzeige,...
Ich würde am Anfang einfach eine Led blinken lassen.
Das geht relativ einfach mit
Das ist nur die Main (Hauptprogramm). Die Led wäre hier an PD0 (Pin 2) angeschlossen. Die Led ist 1sec ein und 1sec aus. Es fehlen noch die Includes. Kennst du das AVR GCC Tutorial von www.mikrocontroller.net?Code:int main (void) { DDRD = (1<<PD0); while (1) { PORTB |= (1<<PD0); _delay_ms(1000); PORTB &= ~(1<<PD0); _delay_ms(1000); } }
MfG Hannes
Ne, kenn ich noch nicht.
Ich dachte aber, dass ich mit Hilfe des AVR-Einstieg-Wikiartikels hier evtl. schon die LED zum Blinken bekomme.
Also scheinbat gibts Probleme beim Kompilieren.
C:\Users\Cysign\Documents\waschi2.asm(1): error: Cannot find include file: avr/io.h
C:\Users\Cysign\Documents\waschi2.asm(2): error: Cannot find include file: util/delay.h
C:\Users\Cysign\Documents\waschi2.asm(4): error: syntax error, unexpected FUNCTION
Hab die Includes des AVR-Artikels genommen, da die mir einleuchtend erschienen.
Muss man die header-files unter Windows manuell nachrüsten??
Du hast einen kleinen Fehler gemacht. Du verwendest ".asm". Das wäre Assembler. Gleichzeitig verwendest du aber ".h" als Headerdateien. Das ist wiederum C. Das sind 2 verschiedene Programmiersprachen. Wenn du Assembler verwendest nennt sich die Endung für die "Headerdateien" glaube ich ".a". Bei den C-Dateien hast du als Endung ".c", dann kannst du ".h" als Headerdateien verwenden.
Welches Programm verwendest du? Wenn du AVR Studio verwendest musst du ein C-Projekt anlegen und als Datei hast du dann "*.c"
Hier siehst du es beim AVR Studio 5. http://www.youtube.com/watch?v=kHnxozE4X2I
Die Standart Bibliotheken werden bei der Installation mit installiert, wenn man auch den AVR GCC Compiler wählt. Wenn dieser Installiert wurde solltest du unter C: einen Ordner WINAvr-"Datum" besitzen. In dieser sind dann die Headerdateien zu finden.
MfG Hannes
Dir "Toolchain" ist wohl erst ab AVR Studio 5 mit an Bord. Ich lade grade Atmel Studio6 runter. Ich hoffe, dass es jetzt geht![]()
WinAVR ist bereits bei AVR Studio 4 dabei. Hier muss man es aber auswählen.
MfG Hannes
So, also das Atmel Studio 6 wirkt auch mich schon wesentlich benutzerfreundlicher. Hier konnte ich direkt und ohne Probleme n C-Projekt starten.
Ich denke mal, das dürften die richtigen Includes sein, da ich keinen Fehler beim Compilieren bekomme.#include <avr/io.h>
#include <avr/delay.h>
int main (void)
{
DDRD = (1<<PD0);
while (1)
{
PORTB |= (1<<PD0);
_delay_ms(1000);
PORTB &= ~(1<<PD0);
_delay_ms(1000);
}
}
Aber ich bekomm immer wieder die Meldung "Unable to enter programming mode".
Und die Device infos kann ich auch nicht auslesen, die anliegenden 4,9-5.0V Spannung jedoch werden scheinbar richtig angezeigt.
Wenn ich die ISP-Geschwindigkeit einstelle bekomme ich allerdings die Meldung, dass alles OK ist.
Kanns sein, dass ich einen der Pins falsch angekabelt hab?
Geändert von Cysign (30.06.2012 um 22:07 Uhr)
"22:05:57: [WARNING] The device [attiny2313] is not supported in ASF Version [3.1.3] that is used in the project Waschbaer1
22:06:22: [ERROR] Unexpected signature 0x00000000 (expected 0x001e910a)., ModuleName: TCF (TCF command: Device:startSession failed.)"
Was ist denn jetzt ASF schon wieder?
Lesezeichen