LED-Blitzer mit Bascom und ATtiny13

OP #1333787
Lesenswert?

Ich habe folgendes programm erstellt und komme nicht weiter;
kann mir da jemand helfen?
1
'Bascom Projekt
2
  'von Leopold Schilling
3
  '*************************************
4
  'Alarmatrappe mit Led-Flasher
5
  ' mittels Attiny13
6
  '  weisse LED mit 100Ohm Vorwiderstand
7
  '   Widerstand 47k an Pin1
8
  '*************************************
9
  $regfile = "ATtiny13.dat"
10
  $crystal = 1000000
11

12
  Config Portb.1 = Output                                   'Ein Pin wird aus Ausgang konfiguriert PC0 (also Pin0 von Port C)
13
 Led Alias Portb.1
14

15

16
  Do
17
            Led = 1                                         'Pin wird auf Low, also 0V geschaltet
18
     Waitms 150
19
            Led = 0
20
            Waitms 5000                                         'Pin wird auf High,also 5V geschaltet
21
     
22

23
  Loop
24
  End
An Pin 6 hab ich eine weisse Led mit Vorwiderstand  und einen Widerstand
von Plus auf Pin 1!
lg
LS
#1333845
Lesenswert?

der tiny 14 kann doch gar kein 1Mhz, zumindest nicht ohne externen 
Quarz.

intern hat der 9,6(default) oder 4,8 dies kannst du wahlweise noch 
teilen lassen (default: 8)
der standardtakt ist also 1,2Mhz.
wird aber nicht dein Problem sen.


1
>   Config Portb.1 = Output                                   'Ein Pin wird aus Ausgang konfiguriert PC0 (also Pin0 von Port C)
2
>            Led = 1                                         'Pin wird auf Low, also 0V geschaltet
3
>            Waitms 5000                                         'Pin wird auf High,also 5V geschaltet
selbst gar keine Kommentare sind besser als falsche kommentare
OP #1333860
Lesenswert?

Das mit den Kommentaren tut mir leid.
Ich wollte ein einfaches Bascom Programm mit dem ich mit einem Attiny13 
od. 15 auf Pin6 (Portb.1) eine Led alle Minuten für 1 Sekunde zum 
Leuchten bringe.
Stromversorgung ist 4,2V
Kondensator zwischen Plus u. Minus
Vorwiderstand 100 Ohm mit weisser LED-minus auf Pin6, Plus der Led auf 
Versorgungsplus
47k Widerstand von Plus zu Pin 1(Reset)
lg
LS
#1333941
Lesenswert?

hallo Leopold Schilling,

ich hatte mit bascom und tiny13 auch schonmal probleme
mit einem portpin als ausgang. irgendwie schein bascom da die
spi-schnittstelle nicht richtig zu verwalten.

versuch das ganze mal mit nem anderen pin. z.b. pb4.
das programm sieht doch sonst gut aus.

gruss klaus
#1333944
Lesenswert?

Was ist denn das Problem?
gehts gar nicht, gehts falsch? das Prgrammieren geht?

>Vorwiderstand 100 Ohm mit weisser LED-minus auf Pin6, Plus der Led auf 
Versorgungsplus

Das heißt deine LED ist low-Aktiv. sprich sie leuchtet, wenn dein Port 
auf Low ( LED = 0) ist und wenn High (LED=1) geht die LED aus.

Der vorwiderstand ist für ne weiße LED, die typischerweise eine 
Durchlasspannung von ~3V haben recht hoch, sollte aber passen.

Der Pullup am reset ist auch ok.


edit:
>     Waitms 150
>     Waitms 5000                                         'Pin
>Ich wollte [...] eine Led alle Minuten für 1 Sekunde zum Leuchten bringe.

??? du kennst die umrechnungfaktoren von ms -> s -> min?
#1334254
Lesenswert?

Daniel W. schrieb:
> Auf mcselec.com gibt es einen Bericht der bestätigt, dass die
> attiny13.dat Datei fehlerhaft ist :
>
> 
http://www.mcselec.com/index2.php?option=com_forum&Itemid=59&page=viewtopic&t=1409&highlight=attiny13

Ähm. Von 2006 stammt die Meldung, dass dieses mitlerweile gefixt ist.

Schnellschuss:
Du hast aber schon ausprobiert, ob die LED nicht verpolt eingebaut 
wurde. Sowas kann schon mal passieren.
OP #1335071
Lesenswert?

Hallo!
Ich verwende:
zum Brennen das Mysmartusb MK2,mit MyAvrWorkpad Plus
Bascom zum programmieren
ATtiny13 u. 15
mit Reset-Widerstand
100nF auf Versorgungsspannung
weisse LED mit 100 Ohm Vorwiderstand
auf einer Lochrasterplatine aufgebaut mit IC-Sockel
Spannungsversorgung ist ein LiIon Akku mit 4,1Volt
Die LED funktioniert einwandfrei wenn ich Spannung darauf anlege.
Wenn ich an die Schaltung eine Spannung anlege passiert nichts.
Fusebits hab ich bei Bodlev und Suto u. CKSEL0 gesetzt.
lg
LS
OP #1335091
Lesenswert?

'Bascom Projekt
  'von Leopold Schilling
  '*************************************
  'Alarmatrappe mit Led-Flasher
  ' mittels Attiny13
  '  weisse LED mit 100Ohm Vorwiderstand
  '   Widerstand 47k an Pin1
  '*************************************
  $regfile = "ATtiny13.dat"
  $crystal = 1000000

  Config Portb.4 = Output      'Ein Pin wird aus Ausgang konfiguriert
 Led Alias Portb.1


  Do
            Led = 1      'Pin wird auf Low, also 0V geschaltet-LED 
leuchtet
     Waitms 100       'für 0,1 Sekunden
            Led = 0     'LED aus
            Waitms 5000    'für 50 Sekunden


  Loop
  End
---------------------------------------------------------------
Das ist der Programmstand; nicht ganz klar ist für mich die 
Cristalanweisung da ich den internen Quarz verwenden will und
unsicher bin ich mir mit den Waitmsanweisungen.
lg
LS
#1335209
Lesenswert?

>>der tiny 14 kann doch gar kein 1 Mhz, zumindest
>>nicht ohne externen Quarz. Intern hat der 9,6 ...


Hallo,

wenn der ATtiny intern 9,6 MHz hat, kommt man bei einem Teiler von acht 
auf 1,2 MHz.

Wenn ich $crystal= 1000000 setze, versagt der ATtiny dann seinen 
Betrieb, oder schwingt er neben der Frequenz?
#1335290
Lesenswert?

Daniel W. schrieb:
>>>der tiny 14 kann doch gar kein 1 Mhz, zumindest
>>>nicht ohne externen Quarz. Intern hat der 9,6 ...
>
>
> Hallo,
>
> wenn der ATtiny intern 9,6 MHz hat, kommt man bei einem Teiler von acht
> auf 1,2 MHz.
>
> Wenn ich $crystal= 1000000 setze, versagt der ATtiny dann seinen
> Betrieb, oder schwingt er neben der Frequenz?

Schau bitte in die BASCOM Hilfe.
Da ist jeder Befehl ziemlich gut beschrieben.

$CRYSTAL teilt BASCOM mit, mit welcher Frequenz dein AVR arbeitet. Aber: 
ES VERÄNDERT NICHT WIE SCHNELL DER AVR TATSÄCHLICH ARBEITET.

Das ist reine Information für den BASCOM Compiler, damit der die 
Warteschleifen richtig berechnen kann.
#1335521
Lesenswert?

mensch Autor:  Leopold Schilling (leopold) ,

was ist denn mit dir los, dass du so oberflächlich bist.

wenn du ein problem hast, musst du es lokalisieren
und dann ändern. ... also erst analysieren und dann friemeln.

du hast ja meinen vorschlag befolgt mal den pb4 zu verwenden.
leider hast du dann wieder vergessen, das programm anzupassen.

wenn du unsicher mit alias bist, dann lass ihn doch weg.

...   das heisst dann du vereinfachst dein problem:

also...
config portb.4 = output

und dann später portb.4 = 1
oder port.4 = 0

das mit den waits sollte doch für sich genommen auch einleuchten:
1uS = 10hoch minus 6 sekunden
ist so ähnlich wie mikrogramm
brauchst du halt 1000 mikrogramm  um ein gramm zu haben.

danach kommt dann das gramm (milli-kilogramm) oder die millisekunde
.. sind halt 10hoch minus 3 sekunden ... also brauchte 1000 davon
(also von den ms) dann haste 1 sekunde

dann kannste schreiben wait 1 für die sekunde.


und nun nochmal zum crystal:
der bascomgeist rechnet durch die angabe von crystal aus, was er machen 
soll, wenn du wait 1 eingibst.
du willst also einen wait 1 (sekunde) ... und der denkt sich aus, 
wieviele systemtakte (abhängig vom takt) er nun warten muss , um 
ungefähr deinen wünschen nachjzukommen.

.. und deshalb ist die angabe nicht unwichtig,
obwohl zwischen 1000000 und 1200000 nfür deine anwendung erstmal nicht 
viel
passiert ... ausser dass deine sekunde um 20% kürzer oder länger wird.


ich könnte ja mal vorschlagen, dass du mal sowas in das prog schreibst:

do
wait 2
portb.4=1
wait 2
portb.4=0
loop

wenn dein crystal falsch ist, kann es ja durchaus einige minuten dauern, 
bis sich was tut.. aber es sollte sich schon was tun.

die wartezeit ist aber doch besser investiert als in die ganzen texte 
hier.

............ also .............. streng dich an

gruss
#1335548
Lesenswert?

>>$CRYSTAL teilt BASCOM mit, mit welcher Frequenz dein AVR arbeitet. Aber:
>>ES VERÄNDERT NICHT WIE SCHNELL DER AVR TATSÄCHLICH ARBEITET.

Aha! -Wenn man ...
$crystal = 1000000 statt $crystal = 1200000

... eingibt, würde der AVR also nicht den Dienst 100% quittieren, 
sondern
der AVR würde funktionieren, und die Sekunde, die man mit Wait 1 angibt, 
wäre bloss um 20% kürzer oder um 20% länger.
OP #1335562
Lesenswert?

Hallo!
Ihr habt natürlich recht.
Ich hab in der Vergangenheit sowas mit einem NE555 gemacht.
Jetzt hab ich mir ein mysmartusb zugelegt, ein Buch gekauft, das
ich leider noch nicht studieren konnte und wollte schnell einen
Attiny zum Blitzen bringen(den Attiny deswegen weil der weniger Strom 
verbraucht).
In Zukunft werd ich mir ein ordentliches Bascom-Tool zulegen
(dzt. hab ich eine Demoversion wo z.B. die Hilfe fehlt).
Ich hoffe das ich heute das Projekt positiv beenden kann.
lg und Danke für die Hilfen
LS
#1335569
Lesenswert?

Leopold Schilling schrieb:

> In Zukunft werd ich mir ein ordentliches Bascom-Tool zulegen
> (dzt. hab ich eine Demoversion wo z.B. die Hilfe fehlt).

Die Hilfe gibts auch online.
Auf genau derselben Web-Site von der du auch die Demo hast.
Und ja. Man kann sich die Hilfe von dort auch downloaden.
#1335598
Lesenswert?

....   huh und vor allem ist natürlich die preiswerte vollversion von 
bascom auch nicht schlecht.

was ich nicht verschweigen will, ist natürlich, dass die vollversion // 
diese hab ich jetzt seit etwa 2 jahren // auch nicht mehr wirklich 
mitwächst.

die kostenlosen updates sind prima .. aber bei neueren prozessoren als 
vor zwei jahren ..  wird es doch immer wieder sehr merkwürdig, was da 
passiert.

als neuere prozessoren fällt mir z.b. schon der mega88 im vergleich zum 
mega8 ein.
da gibs manchmal sachen, wobei ich an mir zweifele.
im ende lese ich dann den teil des datenblattes , der relevant ist und 
programmier die nötigen register in inline assembler.

trotzden... schön dass es bascom gibt
und schön, dass amn sich dann nach der eingeöhnungszeit einfach nicht 
mehr wundert .. sondern das problem analysiert und es // man ist ja auch 
selber gewachsen // einfach anders lösen kann.

ohne bascom hätte ich wohl garnicht damit angefangen

gruss klaus
#1335726
Lesenswert?

ich kann nur nicht nachvollziehen warum man sich von einer 
Minderheitensprache wie bascom abhängig macht.

zum einen hast du das Problem, mit neuer Hardware.
Zum anderen hast du ein totales Problem mit anderer Hardware.
(Dazu kommt der Preis)

Wenn du irgendwann mal nen anderen µC verwenden muss, musst du die 
ganzen Bascom-Programme umschreiben.

Wenn man es direkt in C schreibt, muss man nur die Hardwareabstraktion 
anpassen.
#1335927
Lesenswert?

ich wollt ihm nur einen Rat geben, der ihm eventuell etwas Geld spart 
und zum anderen möglicherweise Arbeit.

außerdem ist es nie verkehrt, wenn man ein wenig c kann.
Bascom ist von recht eingeschränktem Nutzen.
(weiß ja nicht, was er beruflich macht, bzw. vor hat berufllich zu 
machen)

Aber ich gebe dir recht! das ist OT. und sollte woanders diskutiert 
werden.

Gruß,
Vlad
Gast #1335960
Lesenswert?

>> Bascom ist von recht eingeschränktem Nutzen.

Eine reichlich unqualifizierte Aussage.

Denke ich kann C ein wenig und dennoch schätze ich die unkomplizierte 
Programmierung mit Bascom. Versteh' wirklich nicht woher die abschätzige 
Meinung kommt.

Das wirklich Wesentliche ist nicht das Werkzeug, sondern der mehr oder 
weniger intelligente Kopf dahinter. Wenn ich mir manche Posts hier im 
Forum anschaue, auch die unter C geschriebenen, kommen mir Zweifel, ob 
diese zu Ersteren zählen sind.

Und ansonsten scheint mir Bascom Neuanfängern den Einstieg in diese 
Materie sehr zu erleichtern. Daß da manches Merkwürdige rauskommt ist 
auch klar und natürlich.

Wie steht's übrigens mit dem Programm des OP's ?
Gast #1335974
Lesenswert?

>Fusebits hab ich bei Bodlev und Suto u. CKSEL0 gesetzt.

Da würde mich mal interessieren wie, was gesetzt wurde.
Bodlevel auf 4.3V bei 4.1V Betriebsspannung bedeutet
Dauerreset. Am besten mal Bodlevel auf 2.7V setzen
oder auch mal ganz deaktivieren.
#1336042
Lesenswert?

MWS schrieb:
>>> Bascom ist von recht eingeschränktem Nutzen.
>
> Eine reichlich unqualifizierte Aussage.
Danke.

>
> Denke ich kann C ein wenig und dennoch schätze ich die unkomplizierte
> Programmierung mit Bascom. Versteh' wirklich nicht woher die abschätzige
> Meinung kommt.
Ich meinte außerhalb des AVR-Hobbybastelerbereichs wirds dir nicht viel 
bringen. C ist universell. für nahezu jede Hardware/Os gibts c compiler.
Einnicht zu unterschätzendenr Faktor ist auch: Wenn du 
Programmierkenntnisse in C im Lebenslauf vorweisen kannst wiegt das mit 
sicherheit mehr als Bascom Erfahrungen.

>
> Das wirklich Wesentliche ist nicht das Werkzeug, sondern der mehr oder
> weniger intelligente Kopf dahinter.
Das Werkzeug spielt eine ganz entscheidene Rolle!
Es ist etwas anderes, ob du ein Produkt in C entwickeslt, was mit 
geringem Anpassungsaufwand auf den verschiedensten Harswareplatformen 
lauffähig ist, oder ob du für jede Hardwareplatform in einer speziellen 
Programmiersprache/Toolchain alles neu schreiben muss.
> Wenn ich mir manche Posts hier im
> Forum anschaue, auch die unter C geschriebenen, kommen mir Zweifel, ob
> diese zu Ersteren zählen sind.
wer sind erstere? und wer sind letztere?

>
> Und ansonsten scheint mir Bascom Neuanfängern den Einstieg in diese
> Materie sehr zu erleichtern. Daß da manches Merkwürdige rauskommt ist
> auch klar und natürlich.
Was auf jeden Fall sehr gut ist, dass die Geräteinitialisierungen recht 
unkomplizirt gekapselt werden. Bei C ist da die ewige 
Register-Bit-Schuppserrei. Aber da könnte man sich auch nette 
Abstraktions-Header basteln.

>>als neuere prozessoren fällt mir z.b. schon der mega88 im vergleich zum
>>mega8 ein. da gibs manchmal sachen, wobei ich an mir zweifele.
woher soll ein anfänger dawissen, ob er was falsch gemacht hat, oder der 
Compiler
das pasiert bei c nicht, das ist (nahezu) immer der Programmierer 
schuld, da die compiler sehr ausgereift sind. und die AVR header sind 
auch sehr gut.


>
> Wie steht's übrigens mit dem Programm des OP's ?
Richtig: Zurück zu Thema
OP #1337124
Lesenswert?

Hallo!
Ich hab jetzt alles neu aufgenaut mit Attiny2313.
Hab auf Portd.5 den Vorwiderstand zur LED welche permanent 4,1V Plus 
hat.
------------------------------------------------------
 'Bascom Projekt
  'von Leopold Schilling
  '*************************************
  'Alarmatrappe mit Led-Flasher
  ' mittels Attiny2313
  '  weisse LED mit 67 Ohm Vorwiderstand
  '   Widerstand 10k an Pin1
  '*************************************


  $regfile = "ATtiny2313.dat"
  $crystal = 3686400
  $sim
  Config Pind.5 = Output

  Do
    Portd.5 = 1
   Waitms 200
    Portd.5 = 0
   Waitms 2000
Loop
End
-------------------------------------------------------------
Hab die Fusebits auf Standard und alles bleibt finster.
Ich weis keinen Rat mehr warum???
lg
LS
OP #1337160
Lesenswert?

Das $sim hab ich nur zum Testen gesetzt und wieder auskommentiert.
Die LED hab ich Minus auf Minus permanent und Plus der LED mit
Vorwiderstand auf das Portd.5 (oben hab ich das verwechselt 
geschrieben).
lg
LS
Wenn ich simuliere geht der Zeiger zum 1. wait und bleibt dort stehen.
Meine CPU vom PC geht auf 100% Auslastung?
#1337163
Lesenswert?

Ich kenn bascom nicht, aber das kommt mir komisch for:
  Config Pind.5 = Output
sicher dass es Pind.5 und nicht Portd.5 oder Ddrd.5 heißen muss?

AVR hat für IO-Ports jeweils 3 register:
DDR[A|B|C|D] - hier stellt man ein , ob ausgang oder eingang (standard: 
eingang)
PIN[A|B|C|D] - hier ließt man werte von auf eingang konfigurierten Pins 
aus
auf Output konfigurierte Pins können meist getoggelt werden, indem man 
hier ne 1 an das entsprechende Bit reinschreibt.
PORT[A|B|C|D] - hier schreibt man rein, ob ein auf ausgang konfigurerter 
Pin an oder aus sein soll. wenn ein Pin auf eingang steht, schaltet man 
hier die Pullups ein, oder aus.

was heißt:
  $sim
?
Gast #1337184
Lesenswert?

Remarks

Simulation of a WAIT statement can take a long time especially when 
memory view windows are opened.

The $SIM compiler directive instructs the compiler to not generate code 
for WAITMS and WAIT. This will of course allows faster simulation.

When your application is ready you must remark the $SIM directive or 
otherwise the WAIT and WAITMS statements will not work as expected.

When you forget to remove the $SIM option and you try to program a chip 
you will receive a warning that $SIM was used.
Gast #1337196
Lesenswert?

Wenn Du Fuses auf Standard hast, dann läuft der 2313 mit Voreinstellung 
1 MHz.

Da der Compiler den $crystal = 3686400 Wert für die Vorberechnung der 
Wait.. verwendet, ergäbe sich so eine Verzögerung von 0.74 Sek auf High 
und 7.4 Sek auf Low.

Deshalb wäre $crystal = 1000000 richtig.

Das Programm scheint bis auf $sim richtig zu sein, $sim erzeugt anderen 
Code wie schon richtig erwähnt, ist nur für den Bascom Simulator zu 
verwenden. Zum flashen muss ohne $sim kompiliert werden !

Die Verwendung des Config für einzelne Bits eine Ports ist mit:

Config Pind.5 = Output

auch richtig, das steht alles in der Hilfe Datei.

Aus Deiner Beschreibung geht nicht hervor, wie die Led angeschlossen 
ist, ein Pin der Led auf Minus, dann Widerstand, Widerstand an PinD.5 ?

Leuchtet die Led wenn der Widerstand statt am Pin direkt an Minus 
angeschlossen wird ?

Mit der $sim Anweisung drin sollte die Led halb so hell wie normal 
leuchten, aber scheinbar dauernd, da die entstehende Frequenz zu schnell 
für`s Auge ist.
Gast #1337209
Lesenswert?

Ja, bin mir sicher, Beschreibung in der Bascom Hilfe:

"You can also set a single port pin with the CONFIG PIN = state,
statement."

und auch als Beispiel in der Hilfe:
1
$framesize = 32
2
Config Print0 = Portb. 0 , Mode = Set
3
Config Pinb. 0 = Output 'set the direction yourself
4
Dim Resp As String * 10

Aber im Zweifel:

DDRD = &H20

oder

DDRD = &B00100000
Gast #1337279
Lesenswert?

Schaltung ist ok.

Ist die Polung der Led richtig ? Leuchtet die Led wenn der Widerstand 
statt an Pin 9 an Plus gelegt wird ?

Wenn Du bei den Angaben für die Fuses keinen Fehler reingehaut hast:

> Low         High      Extended    Lockbits
> 01100010   11011111   11111111    11111111

dann läuft Dein 2313 mit internem R/C Oszillator 4MHz, da die DIV8 Fuse 
aktiv ist, hast Du eine tatsächliche Taktfrequenz von 500kHz, 3,68MHz 
wäre also ganz falsch.

http://www.engbedded.com/fusecalc/

Das ist somit nicht mehr der Auslieferungszustand, denn der wäre 1MHz.

Du musst dann:

$crystal = 500000

in den Quelltext schreiben.

Du kannst das Hex-File posten, dann schau' ich Dir auf Assemblerebene 
an, ob's wenigsten SW-seitig passt.
OP #1337298
Lesenswert?

Mein neuester Code; geht auch nicht!

'Bascom Projekt
  'von Leopold Schilling
  '*************************************
  'Alarmatrappe mit Led-Flasher
  ' mittels Attiny2313
  '  weisse LED mit 67 Ohm Vorwiderstand
  '   Widerstand 10k an Pin1
  '*************************************


  $regfile = "ATtiny2313.dat"
  '$crystal = 1000000
  $crystal = 500000
  $hwstack = 32
  $swstack = 10
  $framesize = 40

  Config PortD = Output
  Dim Warten as Byte
  Dim Zuwarten as Byte

  Warten = 150
  Zuwarten = 250

Do
PortD = &B0010000
Waitms Warten
PortD = &B0000000
Waitms Zuwarten .

Loop
End
OP #1337326
Lesenswert?

Hallo
Ich verwende Bascom-AVR Demo
Prüfe Syntax
Compiliere(F7)
Program chip(F4)
dann gehen 2 Fenster auf in denen der Balken läuft während des Brennens
das wars
lg
LS
Als Programmieradapter verwende ich mysmartusb MK2
Ich kann die Fusebits auslesen
Es wird der Progger und der Attiny erkannt
Gast #1337338
Lesenswert?

>Wenn ich plus zum Vorwiderstand halte leuchtet die LED!
Wenn Du das getan hast, als der Kontroller noch mit dem
Vorwiderstand der LED verbunden war, dann hast Du die
Betriebsspannung auf einen AUSGANGS-PIN gegeben.
Das vertraegt der Kollege Kontroller nicht.

Aendere mal die Zeile:
PortD = &B0010000
in
PortD = &B11111111
und schliesse die LED an einen anderen Ausgang an, um zu testen, ob
der Portd.4 von und gegangen ist.


MfG Paul
Gast #1337347
Lesenswert?

Um dem Elend endlich mal auf die Spur zu kommen
versuch die LED doch einfach nur mal einzuschalten.
Am besten gleich alle Portd Pins schalten:

  $regfile = "ATtiny2313.dat"
  '$crystal = 1000000
  $crystal = 500000
  $hwstack = 32
  $swstack = 10
  $framesize = 40

  Config PortD = Output


Do

DDRD = &B11111111 'Vorsichtshalber. Später evtl. wieder entfernen
PortD = &B11111111

Loop
End

So, leuchtet das Ding jetzt endlich?
Gast #1337356
Lesenswert?

Leopold,

Dein Hexfile ist unbrauchbar, Grund ist daß Du in Bascom Einstellungen 
geändert hast und zwar so wie sie nicht gehören.

Geh mal unter "Optionen -> Compiler -> Output" und nimm den Haken aus 
"Swap Words" raus.

Denn damit werden Lower Byte und Higher Byte eines Words im Hexfile 
vertauscht, damit kann der Atmel dann nix mehr anfangen.

Probier auch anhängendes Hexfile aus, ist auf 500kHz konfiguriert und 
sollte laufen.
Angehängte Dateien:
Gast #1337367
Lesenswert?

Hier noch der korrigierte Quellcode basierend auf Deinen Einstellungen 
der Fuses:
1
 'Bascom Projekt
2
  'von Leopold Schilling
3
  '*************************************
4
  'Alarmatrappe mit Led-Flasher
5
  ' mittels Attiny2313
6
  '  weisse LED mit 67 Ohm Vorwiderstand
7
  '   Widerstand 10k an Pin1
8
  '*************************************
9

10

11
  $regfile = "ATtiny2313.dat"
12
  $crystal = 500000
13

14
  Config Pind.5 = Output
15

16
  Do
17
    Portd.5 = 1
18
   Waitms 200
19
    Portd.5 = 0
20
   Waitms 2000
21
Loop
22
End

Und aufpassen bei den Pin-Zuweisungen und den Anschlüssen des Atmel, 
Portpins beginnen immer bei 0 und enden bei 7, wobei PinX.0 der erste 
und PinX.7 der achte Anschluss ist. Ein Beinchen daneben und Du kannst 
lange warten, bis etwas passiert. :D
Gast #1337544
Lesenswert?

Na, dann ist's ja gut.

Checksummenfehler ? Schau mal auf welche Zeile verwiesen wird, ob der 
Wert 50000 die Ursache ist. Bis 65535 sollte gehen.

Bei mir kompiliert das ohne Probleme.

Ansonsten nimm eine For/Next Schleife mit einem Waitms 1000 drin.
#1337590
Lesenswert?

Anschlüsse (siehe beigefügtes Bild):

orange: UB (+)
gelb: Miso
grün: Reset
blau: Sck
violett: Mosi
schwarz: Masse


Hallo,

habe heute eine Experimentier-Platine mit ATtiny13 gebaut (siehe Bild). 
-Der LED-Blitzer funktioniert ohne Probleme. -Hier der Bascom-Code:

= = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = =
1
  $regfile = "ATtiny13.dat"
2
  $crystal = 1200000
3

4
Piezo Alias Portb.4
5
Config Piezo = Output
6

7
Do
8
    Toggle Piezo
9
    Wait 1
10
    Toggle Piezo
11
    Wait 1
12
Loop
13
End
Angehängte Dateien:
#1339622
Lesenswert?

Hallo Leopold,

>>Wieviel Stromverbrauch habe ich mit dem At ...

also der ATtiny13 (siehe mein Posting vom: 16.07.2009 23:14)
hat folgenden Stromverbrauch:

Stromverbrauch bei 5V:
2,6 mA wenn LED aus
3,4 mA wenn LED ein

Dein Akku mit 800mAh würde (bei einem Durchschnitts-Strom von 3mA) 11 
Tage und 2 Stunden halten.
#1339698
Lesenswert?

wie kommst du auf 0,8mA für die LED?

>2,6 mA wenn LED aus
Das ganze geht viel sparsamer (ein paar µA)


das Haupt Programm besteht nur aus:
Watchdog auf maximale Zeit (8sec) initialisieren und Interupt mode 
configurieren. (Datenblatt abschnitt 8.4)
leere endlosschleife,

Die Watchdog-ISR:
die mitzählt und alle 7-8 mal eine sec. lang den Pin anschalten
am ende der Routine in den power-down modus gehen


Um das ganze noch sparsamer zu machen, den internen Takt auf 128 kHz 
fusen (und den CPU-Prescaler in der Main am anfang auf 256 stellen - 
weiß nicht ob das wirklich Strom spart).

Vorsicht ich bin mir nicht sicher, ob man den mit 128kHz noch per isp 
programmieren kann.

Edit :
Den Strom im Power-Down kannst du fast vernachlässigen
wichtig ist also nur noch der "An"-strom

Ne normale LED braucht ca 20mA, der AVR mit 128kHz 0,2 + WDT.
macht großzügig 21mA
großzügig 25, da er ja zwischendurch für ein paar Takte aufwacht und 
auch im Schlaf ein wenig verbraucht
25 * 1/60 Dutycycle = 0,42 mA
-> 800/0,42 -> 1900h = 79 Tage

Wenn ich Fehler gemacht habe korrigiert mich bitte
#1339989
Lesenswert?

hab das ganze mal aufgebaut.
im anhang der Code.

Mein Messgerät misst 5µA in der Zeit wo die LED aus ist.
Wobei das das unterste Ende der kleinsten Scala (2000µA) meines 5€ 
Baumarktmessgerätes ist.

Betrieben war er mit 5V, die FUses sind auf 4,8Mhz
gestellt intern der höchste Prescaler eingestellt.
Macht eine resultierende Frequenz von 18,750kHz -> das sollte im Tool 
als CPU-Frequenz eingestellt werden, damit die 1000ms Wartezeit 
funktionieren.

Der Watchdogtimerfrequenz ist spannungsabhänig.
Das heißt bei geringeren Spannungen muss man gegebeennfalls ein wenig 
experimientieren bis man eine Blinkfrequenz erreicht hat, die einem 
gefällt.
Angehängte Dateien:
Gast #4335129
Lesenswert?

Eberhard B. schrieb:
> Ich habe eine frage
>
> Ich habe mit dem Attiny13 ein lauflicht gebaut möchte aber mit einen
> Porti die Takt erhöhen wie geht das
>
> Das Ganze unter Bascom
>
> Ich bitte um Antwort

Dann fang einen neunen Thread an und fladere nicht einen 6 Jahre alten.

Und ansonsten: RTFM

steht alles in der Hilfe vom Bascom

Grüße

MiWi

Antwort schreiben

Bitte melde dich an, um einen Beitrag zu schreiben.

oder

Mit Google-Account einloggen

Die Registrierung ist kostenlos und dauert nur eine Minute.

Jetzt registrieren