Hallo,
danke erst mal für euer Info's.
@ oberallgeier = für dass, das hier jeder 2 den Code aufbauen kann tut es aber keinerMit deinem Code kann ich leider nichts anfangen. Zu viel durcheinander drin.
Klar kann der Tiny84 20MHz, aber laut Datenblatt erst ab 4,5V. Ich nutze nur 3V.
@ Wsk8 = Danke für dier Tutorials, werde sie durcharbeiten. Mal schauen ob dich dann schlauer bin...
@ Besserwissi = Habe ganz unten im Datenblatt die gesamte Registerbeschreibung gefunden. Wie man so was vermeidlich unwichtiges ganz nach hinten ins DB macht verstehe ich auch nicht.
Deine Angaben kann ich bestätigen. Scheinbar muss man die Register kreuz und quer ohne Sinn verwenden damit man die gewünscht Funktion erhält![]()
Ich habe aus den Angaben folgenden Code generiert:
#include <stdlib.h>
#include <avr/io.h>
#include <avr/interrupt.h>
#define F_CPU 1000000UL
unsigned char wert;
ISR(SIG_OUTPUT_COMPARE0B)
{
wert++;
}
//----------------------------
int main(void)
{
TCCR0B= (1<<CS00)&&(1<<CS02)&&(1<<WGM02); CPU Takt/1024
OCR0B= xxx ;
TIMSK0 = (1<<OCR0B);
sei();
wert=0;
//------------------------------
while(1)
{
if (wert=1)
{
DDRA = 0x06;//wenn Zählerwert 1 erreicht ist gib 1 als BCD an 7-Segmentanzeige aus
}
}
//-----------------------------
}
Vergleichswert muss ich noch schaue wie man den angibt. Im Datenblatt steht "(CSn2:0 = 7)" CS = Vergleichswert, n = Variable von 1bis..., aber was 2:0=7 bedeutet weis ich nicht.
Wird ja im Datenblatt nirgends erwähnt was ATMEL's fiktive Rechenoperationen bedeuten.
Kann mir wenigstens jemand sagen wo der Fehler in meinem Code ist?
Lesezeichen