Forum: Mikrocontroller und Digitale Elektronik ATTiny12 + bascom


von Tom (Gast)


Lesenswert?

Hallo,

ich habe ein ganz komisches Problem.

ich schriebe ein ganz siomples Programm in Bascom:

Config PORTB.0 = output
do
portb.0 = 1
waitus 500
portb.0 = 0
waitus = 500
loop

wenn ich nun einen frischen Tiny12 damit brenne funktioniert das ganze 
auch. (led an portb0 blinkt.)

wenn ich das ganze nun nochmal brennen möchte, oder was anderes, kann 
ich den Attiny . beim nicht mehr ansprechen, nix, kapput! danach läuft 
der µC gar nicht mehr. ich habe jetzt schon 4 von den dinger 
geschrottet.

ich habe 3variationen des Programmierens aubrobiert.

1: bascom mit dem "Simple SPI Programmer"
2: Bascom mit nem "STK200" kompatiblem Programmer
3. in Bascom HEX datei erstellt, und manuell mit avrdude und einem 
USBASP gebrannt.

überall das selbe. 1.Programmiervorgang alles OK. ab dem 2. TOT!.

weiss jemand weiter??

Vielen Dank im Voraus!

Tom

von Anselm (Gast)


Lesenswert?

blinken? mit 1KHz oO
Schreib mal deinen kompletten Code hier rein...

von Tom (Gast)


Lesenswert?

Hallo,

hier der Komplette Code:



$regfile = "attiny12.dat"
$crystal = 1000000

Config PORTB.0 = Output

Do
  Portc.0 = 1
  Waitms 500
  Portc.0 = 0
  Waitms 500
Loop

End

von Z8 (Gast)


Lesenswert?

>waitus 500
>...
>waitus = 500

find ich hoch tolerant vom Kompiller :)

von Tom (Gast)


Lesenswert?

STOPP! PORTC ist natürlich PORTB!

von Z8 (Gast)


Lesenswert?

Kann das Bascom umsetzen?
Ein Unterprogrammaufruf ohne RAM?

von Tom (Gast)


Lesenswert?

Hallo,

ich habe beim compilieren keinen Fehler bekommen, und das entsprechende 
Regfile ist ausgewählt, daher denke ich, dass das doch gehen sollte?!!?! 
oder?

von Anselm (Gast)


Lesenswert?

do
toggle Portb.0
waitms 500
loop

so isses kürzer ;)

Aber warum der sich nimmer programmieren lässt ... portb.0 ist ja nicht 
anderweitig belegt.

Es irritiert mich aber etwas dass dein 2ter Post mit dem Code diesen 
"doofen" Fehler hat, tippst du ab anstatt copy&paste?

Anselm

von Anselm (Gast)


Lesenswert?

Table 19. Port B Pins Alternate Functions
Port Pin Alternate Functions Device
PB0
AIN0 (Analog Comparator Positive Input) ATtiny10/11/12
MOSI (Data Input Line for Memory Downloading) ATtiny12

PB1
INT0 (External Interrupt0 Input) ATtiny10/11/12
AIN1 (Analog Comparator Negative Input) ATtiny10/11/12
MOSI (Data Output Line for Memory Downloading) ATtiny12

Datenblatt Seite 36

Nimm mal PB3 oder PB4

PB3 XTAL1 (Oscillator Input) ATtiny10/11/12
PB4 XTAL2 (Oscillator Output) ATtiny10/11/12
PB5 RESET (External Reset Pin) ATtiny10/11/12

von Z8 (Gast)


Lesenswert?

Die Frage war ernst gemeint!

>Kann das Bascom umsetzen?
>Ein Unterprogrammaufruf ohne RAM?

von Anselm (Gast)


Lesenswert?

Unterprogramm?
Ich vermute mal dass bascom an der stelle einfach den Timer 
programmiert.
Funktionieren tut es ja ;)

von Tom (Gast)


Lesenswert?

ja, ich tippe, :-)

von Thomas (Gast)


Lesenswert?

Sicher geht ein Unterprogrammauf! Der ATiny12 hat doch einen 
HardwareStack, für drei Einträge.

von Tom (Gast)


Lesenswert?

Hallo  Anselm,

ich verstehe nicht...
warum soll ich port 3 oder 4 nehmen?? es kann doch nicht sein, dass man 
ein Bein nehmen muss, welches nicht vom ISP genutzt wird, oder?? dann 
könnte ich an den 11/12/13 nur 2 Ports benutzen??!?

wenn ich noch einen intakten tiny12 habe, probiere ich das mal aus....

gruß

von Anselm (Gast)


Lesenswert?

Probleme könnte aber deine externe Beschaltung verursachen, drum schlag 
ich andere Ports vor.
Ich habe aber ausser Logic-IC´s noch nie was anderes an Pins eines 
Atmega/tiny angeschlossen, drum ist es nur eine Vermutung..

Anselm

von Mike (Gast)


Lesenswert?

Hallo, wie sieht den deine Reset beschaltung aus.Habe mal was gelesen
da sollte 1 Kohm Widerstad dran.Nicht wie üblich ein 10 Kohm.
Versuch das mal und berichte.

Mike

von Tom (Gast)


Lesenswert?

Hallo zusammen,

habe das ganze nochmals getestet. hatte noch einen tiny12.

den habe ich nun anders geschrottet.  ich kann diesen noch 
programmieren, dafür funktioniert das ding einfach nicht! er läuft nicht 
an. mehfach alles mögliche an Port ausprobiert. proggen funktioniert. 
blinkt aber nix.

daraufhin habe ich nen mega8 genommen und das ganze damit probiert, 
alles ok. mehrfach beschrieben, alles klappt...

ich ges einfach auf mit den tin12. habe mir mal nen tiny 25 bestellt, 
und probiere das damit mal.

gruß

von Hannes Lux (Gast)


Lesenswert?

Also ich habe schon ein paar Dutzend Tiny12 programmiert und keinen 
einzigen dabei beschädigt. Als ISP Programmer habe ich teils einen 
Eigenbau (Hardware am Druckerport und Software in QBASIC) genutzt, teils 
das STK500. Wenn Dir die Dinger sterben (sie sind vermutlich nur 
verfust), dann hast Du entweder an den Fuses gespielt ohne Dich 
sachkundig zu machen, oder Dein Programmer arbeitet timingmäßig hart am 
Limit, wodurch gerne mal ein paar Bits kippen und die ISP-Befehle 
verfälscht werden. Dies kann bei zu langen Leitungen leicht passieren.

Abhilfe: Kauf Dir einen vernünftigen Programmer, z.B. AVR-ISP MK II von 
ATMEL.

...

von Mike (Gast)


Lesenswert?

Der Hase liegt da im Pfeffer ,weil der Tiny 12 keinen SRAM besitzt.
Er lässt sich da in Bascom so nicht einfach Programmieren,in Assembler
schon. Du kannst den Befehl §Tiny benutzen der Verhinder das Einrichten 
des Stacks und in Bascom dein Programm in Assembler (einbinden) 
schreiben.

Mike

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.