ATtiny 87 Ausgänge ansteuern

Gast #5597590
Hallo liebe Comunity,

Ich kann auf meinem Demoboard die Ausgänge des ATtiny87 nicht schalten.
Ich habe 4 LEDs an den Ausgängen PB0 - PB3. Die LEDs gehen auch sicher, 
da ich vor dem Auflöten des Prozessors direkt mal 5V an PB0 - PB3 gelegt 
habe.
Die LEDs werden aktiv mit High getrieben.
Der Controller läuft mit 8MHz internen RC Oszillator und ISP und Fuses 
lesen schreiben funktioniert problemlos.

Daher vermute ich, dass ich einen groben Fehler in meinem Code übersehen 
habe.

Kann mir jemand helfen? Irgendwie komme ich einfach nicht vorwärts.
1
#include <avr/io.h>
2
#include "main.h"
3
//#include "hwinit.h"
4
#include <avr/interrupt.h>
5

6
volatile uint8_t count = 0;
7

8
int main(void)
9
{
10
  //hw_init();
11
  DDRB |= 0x0F;              // setze PB0 - PB3 als OUT 
12
  TCCR1B |= (1 << CS11) | (1 << CS10);  // Prescaler 64
13
  TIMSK1 |= (1 << TOIE1);          //Timer 1 Overflow intterupt aktivieren
14
  sei();
15
  
16
  PORTB |= 0x0A;
17
    while (1) 
18
    {
19

20
    }
21
}
22

23
ISR(TIMER1_OVF_vect)
24
{
25
  PORTB = (count & 0x0F);
26
  count++;
27
}

In main.h ist nur das define F_CPU 8000000UL.

Danke schonmal!
LG Johannes
#5597828
Johannes schrieb:
> Daher vermute ich, dass ich einen groben Fehler in meinem Code übersehen
> habe.

Es könnte auch ein Fehler in der HW sein einschließlich Zusammenspiel 
von µC und Programmer.

Ich würde zum Test erstmal nur das Port setzen ohne Timer und ISR. Wenn 
dann nichts leuchet, ist es vermutlich die HW.

> In main.h ist nur das define F_CPU 8000000UL.

.. was in deinem Programmteil garnicht verwendet wird.

Noch was: ist der richtige µC eingestellt?
Gast #5597883
Vielen Dank für eure Antworten.
Natürlich war es ein Hardwarefehler auch wenn ich das ja schon 
ausgeschlossen hatte. Nur eben nicht da wo sich das Problem gezeigt 
hat...

Jetzt läuft alles.
Danke :)

P.S.: Falls jemanden interessiert was war. Die Bauteilreferenzen für den 
Pull-up und den Kondensator nach GND am Reset Pin habe ich im Layout 
ausversehen vertauscht.
Da beide 0805 sind, ist dass dann auch erstmal nicht aufgefallen.
Aber so hat man natürlich einen Pull-down am Reset. Daher konnte ich den 
Prozessor zwar Flashen, aber er ist nie angelaufen Facepalm

Antwort schreiben

Eine eigene Frage? Dieser Thread ist über 8 Jahre alt. Stell sie in einem eigenen Thread – dort lesen mehr Leute mit, und sie wird öfter und schneller beantwortet.

Neuen Thread starten

Eine Lösung, Ergänzung oder Rückmeldung zu diesem Thread? Dann antworte hier.

Formatierung
  • [c]C-Code[/c]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] – Link zu einem Artikel
  • Verweis auf einen anderen Beitrag: Rechtsklick auf dessen Beitrags-ID (#8078628), „Adresse kopieren“, in den Text einfügen

Mehr zur Formatierung

Längeren Sourcecode als Anhang, nicht in den Text. JPG nur für Fotos und Scans; Zeichnungen und Screenshots als PNG oder GIF. Siehe Bildformate.

Schon registriert? Anmelden

Wird nicht angezeigt. Wir schicken dir einen Link; sobald du damit bestätigst, erscheint dein Beitrag.

Mit dem Abschicken legst du einen kostenlosen Account an und erkennst die Nutzungsbedingungen und die Datenschutzerklärung an.