- Akku Tests und Balkonkraftwerk Speicher         
Ergebnis 1 bis 4 von 4

Thema: Blinkprogramm für ATTINY 13 klappt nicht

  1. #1
    Erfahrener Benutzer Roboter-Spezialist
    Registriert seit
    27.08.2007
    Alter
    34
    Beiträge
    324

    Blinkprogramm für ATTINY 13 klappt nicht

    Anzeige

    Praxistest und DIY Projekte
    Ich habe einen AVR vom Typ ATTINY13, an dessen IO Port 3 zusammen mit einem Vorwiederstand eine Verbindung zu GND gebildet wird. Für diese Schaltung habe ich ein Blinkprogramm geschrieben, doch es funktioniert nicht, denn die LED bleibt permanent an. Warum? Wie müsste es richtig aussehen?
    Code:
    .include "tn13def.inc"
    
    rjmp Anfang
    
    Anfang:
    	sbi ddrb, 3
    	ldi r16,255
    sch1:
    	dec r16
    	brne sch1
    	ldi r16,255
    sch2:
    	dec r16
    	brne sch2
    	ldi r16,255
    sch3:
    	dec r16
    	brne sch3
    	ldi r16,255
    sch4:
    	dec r16
    	brne sch4
    	sbi portb,3
    	ldi r16,255
    sch5:
    	dec r16
    	brne sch5
    	ldi r16,255
    sch6:
    	dec r16
    	brne sch6
    	ldi r16,255
    sch7:
    	dec r16
    	brne sch7
    	ldi r16,255
    sch8:
    	dec r16
    	brne sch8
    	cbi portb,3
    	ldi r16,255
    rjmp sch1

  2. #2
    Benutzer Stammmitglied
    Registriert seit
    20.07.2007
    Beiträge
    38
    Hai,

    wenn ich mir deinen Code ansehe würde ich sagen, deine Schleifen sind einfach vviiiiieeellll zu kurz. Die LED wird wahrscheinlich blinken aber mit ner Menge Hertz. Nimm doch mal anstatt 4 Schleifen für an und aus (insgesamt jeweils ~1000 Zyklen) nur zwei Schleifen und verschachtel sie. Dann hast du anstatt 1000 Zyklen 65000 zyklen. Vielleicht kommst du damit weiter.

    Gruß
    Stefan

  3. #3
    Erfahrener Benutzer Roboter-Spezialist
    Registriert seit
    27.08.2007
    Alter
    34
    Beiträge
    324
    Du hattest Recht was das Problem betraf. (Danke) So klappt's:

    Code:
    .include "tn13def.inc"
    
    rjmp Anfang
    Anfang:
          sbi ddrb, 3
    Schleife:
          sbi portb,3
          rcall Warten
    	  rcall Warten       
          cbi portb,3
          rcall Warten      
    	  rcall Warten 
    rjmp  Schleife
    
    Warten:	
          Ldi   r16,250      
    Warten1:                ;äußere Schleife
          Ldi   r17,250
    Warten2:                ;innere Schleife
          dec   r17
          brne  Warten2
          dec   r16
          brne  Warten1 
          ret               ;Rücksprung
    Kannst du mir villeicht noch sagen wie man die Brownout detection aktiviert?

  4. #4
    Erfahrener Benutzer Roboter-Spezialist
    Registriert seit
    29.11.2006
    Ort
    Geislingen a. d. Steige
    Alter
    33
    Beiträge
    344
    die brownout detection kannst du in den fuse bits aktivieren siehe datenblatt!

    MfG Martin

Berechtigungen

  • Neue Themen erstellen: Nein
  • Themen beantworten: Nein
  • Anhänge hochladen: Nein
  • Beiträge bearbeiten: Nein
  •  

MultiPlus Wechselrichter Insel und Nulleinspeisung Conrad