Hallo mensen ik zit nu een beetje te kloten met microcontrollers. Ik heb nu dus de Attiny 13 deze heeft 6 i/o poorten. Daar zocht ik dus een toepassing voor, nouja het is dus een timer voor een belichtingsbak geworden.
Pin 0,1,2,3 = 7-Segment
Pin 4 = aansturing 2e 7-Segment
Pin 5 = Tijd instellen
Ik stuur een bcd code naar buiten. en converteer hem met een BCD to 7-Segments decoder.
Maar hoe stuur ik nou 2 van die segmenten aan.
Ik had zelf zoiets gedacht.
Stukje code geschreven.
.include "tn13def.inc" ; Gebruik Attiny 13
.def temp = r16
.def Tientallen = r17
.def Eenheden = r18
.def Tiental = r19
.org 0x00 ; Begin adres
LDI temp,0b001111 ;Set PORTB 0,1 als Input en
OUT DDRB,temp ; 2,3,4,5 als Output
LDI temp,0b110000
OUT PORTB,temp ; Set pull-up's PinB 0,1
CLR temp
LDI Eenheden,$0A
LDI Tientallen,$09
RJMP Start
SEGMENT1:
CPI Eenheden,$00
BREQ SET_SEGMENT1
DEC Eenheden
RET
SEGMENT2:
CPI Tientallen,$00
BREQ SET_SEGMENT2
DEC Tientallen
RET
SET_SEGMENT1:
LDI Eenheden,$0A
RCALL Segment2
RET
SET_SEGMENT2:
LDI Tientallen,$09
RET
Start:
RCALL SEGMENT1
OUT PORTB,Eenheden
MOV Tiental,Tientallen
ORI Tiental,0b010000
OUT PORTB,Tiental
RJMP START
hij zal het nu wel doen maar dat gaat natuurlijk harstikke snel, dus zou je er een delay moeten inbouwen die om de seconde er 1 van de waarde aftrekt, maar als ik dit doe blijft hij in de lus hangen.
maar ik wil zoiets van:
stuur waarde segment 1 naar buiten
stuur waarde segment 2 naar buiten
dat hij dit stukje steeds maar herhaald en pas na een seconde na een even naar een subroutine springt die er 1 van de waarde aftrekt en daarna gelijk weer terug springt.
zodat het display steeds aanstaat en niet hoeft te wachten op die ene sec.
Heeft die controller geen interrupts? Je kunt dan een ISR maken die 1 van de waarde aftrekt en in de hoofdlus doe je telkens het aansturen van de segmenten
Interrupt is gelukt. ik heb de timer overflow gebruikt.
maar nu een ander probleem.
Ik heb dus mijn hoofdlus waar ik de waarden naar de segmenten heen stuur, maar daar gebeurd iets raars..
Variable
Eenheden = $09
Tientallen = $09
Ik snap niet waar de waarde 8 vandaan komt?
zie dit filmpje:
Fantomaz
Ik moet hier weer vaker komen... Wat kun je zo'n forum als deze gaan missen. :-)
Hee...
Dat is Cool!!! 
Wat voor programma heb je daar draaien?
Is dat een PIC simmulator??
Hoe, wat en vooral WAAR kun je die krijgen/downloaden??
Ik moet altijd errug veel draadjes in mijn breadboard proppen voor ik iets kan doen!
By the way:
Ik kreeg meteen een "Monty Python"
Assosiatie doen ik je tekening/schema zag. Grappig gedaan!
Nog eens by the way:
Ik heb een soortgelijk probleem met het aansturen van 2 7-segments displays.
Misschien heb je er iets aan...
Staat in een topic. Kun je vinden onder mijn naam.
Op 16 juli 2005 20:57:20 schreef Fantomaz:
Hee...
Dat is Cool!!!
Wat voor programma heb je daar draaien?
Is dat een PIC simmulator??
Hoe, wat en vooral WAAR kun je die krijgen/downloaden??
Dat is een simulator voor AVR .
AVR-Studio heet het, kun je hier op de site gewoon downloaden.
By the way:
Ik kreeg meteen een "Monty Python"Assosiatie doen ik je tekening/schema zag. Grappig gedaan!

Nog eens by the way:
Ik heb een soortgelijk probleem met het aansturen van 2 7-segments displays.
Misschien heb je er iets aan...
Staat in een topic. Kun je vinden onder mijn naam.
Ik heb het gezien. Maar ik zit nu met een ander probleempje , de poorten doen niet wat ik wil(of is dat bij jou ook zo? , ff naar je topic kijken).
Atlantis
ciao 4 now.....
Op 16 juli 2005 00:37:04 schreef Electroboy:
Hallo mensen ik zit nu een beetje te kloten met microcontrollers. Ik heb nu dus de Attiny 13 deze heeft 6 i/o poorten. Daar zocht ik dus een toepassing voor, nouja het is dus een timer voor een belichtingsbak geworden.
Bravo Electroboy: je had de oplossing en je hebt ook nog eens het probleem ervoor gevonden!! Ga door met kloten zou ik zo zeggen!! (:))
Fantomaz
Ik moet hier weer vaker komen... Wat kun je zo'n forum als deze gaan missen. :-)
@Atlantis:
Dat heet inventiviteit en je gedachten delen met anderen.
Erg leerzaam.
@Electroboy:
Keep it up!
Weet niemand hoe dit komt ?
http://members.home.nl/mrhofman/Probleem1.avi
Ik stuur alleen maar de waarde $09 en $19 naar buiten(PORTB). ik snap niet waar de waarde $08 vandaan komt.
Op 17 juli 2005 20:43:55 schreef Sine:
Je krijgt ook nog een ander probleem ...Welke uitgang ga je gebruiken om je lamp aan te hangen ?
ja dat is hier idd een probleem. ik zou deze eerst af willen maken (zonder aansturing van het lampje) en als dit me lukt, ga ik de display's serieel aansturen.
*kick*
.include "tn13def.inc"
.def temp = r16
.def seg1 = r17
.def seg2 = r18
.org $00
ldi temp,$3f
out ddrb,temp ; PORTB als output.
ldi seg1,$01
ldi seg2,$02
start:
out portb,seg1
nop
nop
out portb,seg2
nop
nop
rjmp start
ben ff helemaal vanaf het begin begonnen.
hier verwacht ik dus dat Portb de waarde 1 of 2 weergeeft en deze ook aan blijft geven, PB0 en PB1 doen niet wat ik wil.
Bij de overige poorten doet hij het perfect, wat is hier aan de hand?
.
ik ga het even uitproberen.