PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : Tiny13 ISP Grundschaltung gesucht



semperit
22.01.2006, 17:33
Hallo,

hab auf dem Steckbrett einen Tiny13 aufgebaut, nur bekomme ich mit Bascom keine Verbindung zum Tiny hin. Muss ich mehr als die Stromversorgung und das ISP beschalten ? mein Mega32 wird sorfort erkannt ( als test von Bascom )

Ratber
22.01.2006, 21:15
Ja ISP Beschaltung wie gewohnt.
Pullup und Kondensator am Reset nicht vergessen


Schau mal ob der T13 auch mit allen Kontakten im Steckbrett sitzt.
Bei einigen Bretteln sind die Mittleren Stege etwas zu hoch so das kleine IC's nicht ganz passen.

semperit
24.01.2006, 08:34
Danke, schön :-) es lag mal wieder an den Anwender, hatte die ISP falsch angeschlossen :-( Nun geht es wunder schön das erste Programm ( blinkende LED ) läft auch schon. Nun möchte ich ger ndas der Tiny auf hell oder dunkel reagiert. das müsste doch über eine Lichtsensor ( Photowiderstand gehen. Faglich ist nur wie da die Minimalbeschaltung ist. Kamm mir da jemand helfen ?

Ratber
24.01.2006, 10:15
Ja auch einfach.

Mit dem Fotowiderstand (oder Diode/Transitor usw.) und nem zusätzlichen Winderstand baust du nen Spannungsteiler auf.

Jetzt haste 2 Möglichkeiten.
Entweder du hängst das an nen AD-Port und wertest per Software aus oder du hängst nen OP-Amp davor und machst es Hardwaremäßig (Ausgang an normalen Digitalport)

semperit
24.01.2006, 23:28
so das wäre dann auch geschaft, leider will Bascom nicht so wie ich das will:

mein Quelltext :

$regfile = "ATtiny13.dat"
$crystal = 1200000
Config Adc = Single , Prescaler = Auto , Reference = Avcc
Config Portb = Output
Ddrb = &B0101
Start Adc
Dim A As Byte
Do
While A < 500
A = Getadc(2)
Waitms 100
Wend
Portb.3 = Not Portb.3
Waitms 500
Loop


wird bim Compelieren abgelehnt, da nicht genägend Ram ?? vorhanden ist. Kann es sein das der Tiny13 überfordert ist wenn man den ADC mal abfragen möchte und dann noch das ergebnis auswerten will ? Im endefekt möchte ich eine Schalter und den Lichtsensor auswerten, und dann eine Ausgang dementsprechend schalten - mehr eigetlich nicht ;-)

Ratber
24.01.2006, 23:55
Doch das geht.
Du hast nur etwas vergessen.

Der Tiny13 hat nicht viel Ram und die Standardzuweisung vom Compiler frisst alles auf so das nix mehr übrig ist.

Ich hab dir mal die Stackbefehle reingesetzt und auch den Frame.
Les in ruhe nach wofür jeder ist dann haste für die Zeiten wenn auch auf nem M128 das Ram knapp wird.

Desweiteren hab ich A von Byte auf Word geändert.
Zum einen weil der ADC 10 Bit liefert und ein Byte zu eng ist.
(Grundsätzlich ist Eng ja schön aber hier passts nicht)
Und zum anderen hättest du spätestens bei der Zeile "While a<500 wieder Ärger middem Compiler bekommen denn A als Byte kann nie 500 werden denn dafür fehlte im ein Bit (Nein kein Bier) :wink:

Hier mal die geänderte Version.


'Neue Version die zumindes beim Compiler gnade findet *gg*


$regfile = "ATtiny13.dat"
$crystal = 1200000
Config Adc = Single , Prescaler = Auto , Reference = Avcc
Config Portb = Output

$hwstack = 10 'Eingefügt Weil die Standardvorgaben
$swstack = 10 'für den Tiny13 zu
$framesize = 20 'hoch sind.


Ddrb = &B0101
Start Adc
Dim A As Word 'Auf Word geändert weil ADC 10 Bit liefert
Do
While A < 500 'Hier hätte es mit "DIM A as Byte" ärger gegeben
A = Getadc(2)
Waitms 100
Wend
Portb.3 = Not Portb.3
Waitms 500
Loop


Die dürfte jetzt laufen

semperit
25.01.2006, 19:29
supi, nun geht es wie es soll :-) O:)