Forum: Mikrocontroller und Digitale Elektronik ATtiny 87 Ausgänge ansteuern


von Johannes (Gast)


Lesenswert?

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

von Dietrich L. (dietrichl)


Lesenswert?

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?

von Lothar M. (Firma: Titel) (lkmiller) (Moderator) Benutzerseite


Lesenswert?

Dietrich L. schrieb:
> Ich würde zum Test erstmal nur das Port setzen ohne Timer und ISR.
Das ist dann auch mehr oder weniger der einzige Platz wo mal ein delay() 
stehen darf... ?

von Johannes (Gast)


Lesenswert?

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

von HildeK (Gast)


Lesenswert?

Johannes schrieb:
> Falls jemanden interessiert was war.

Klar interessiert das. Auch aus den Fehlern anderer kann man lernen. 
Hier: als erstes mal den Resetpegel nachmessen ...

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
Noch kein Account? Hier anmelden.