wie heeft een idee, ik kan er geen topic over vinden evenmin in de piccursus:
? kan ik de voeding naar de PIC zo programmeren dat ik met een (1) tip(impuls)toets de AAN/UIT van het hele systeem kan regelen. nu doe ik dat met een aparte flipflop maar als het even kan doe ik alles met dezelfde PIC.

http://home.versatel.nl/edithenwilliam/william.htm

Daar staat een cursus. Wat je wil is mogelijk. Met een tellertje: ingang is hoog>teller +1. Ingang nog een keer hoog>reset teller. Schrijf waarde van teller naar uitgang.

Ik weet niet hoe snel een PIC opstart, maar je zou kunnen overwegen met een transistor je PIC van spanning te voorzien. Met de tiptoets, stuur je de Basis aan zodat de pic zijn spanning krijgt.
Als je een poort meteen hoog maakt en deze de funktie van de tiptoets laat overnemen...

Maar ergens in dit verhaal mis ik iets.
Ik heb opwellingen in mijn hoofd over uitgangsspanning van een hoge poort versus de voedingsspanning van de PIC.
Ik kan het niet onder woorden brengen maar iets zegt me dat mijn bovenstaande theorie mank gaat.

Op 15 november 2006 22:07:35 schreef Fantomaz:
Ik weet niet hoe snel een PIC opstart, maar je zou kunnen overwegen met een transistor je PIC van spanning te voorzien. Met de tiptoets, stuur je de Basis aan zodat de pic zijn spanning krijgt.
Als je een poort meteen hoog maakt en deze de funktie van de tiptoets laat overnemen...

Maar ergens in dit verhaal mis ik iets.
Ik heb opwellingen in mijn hoofd over uitgangsspanning van een hoge poort versus de voedingsspanning van de PIC.
Ik kan het niet onder woorden brengen maar iets zegt me dat mijn bovenstaande theorie mank gaat.

Beetje vreemde situatie. Dit kun je gewoon softwarematig oplossen. Hij wil dat als je 1 keer drukt,een lijn hoog wordt, en als je nog een keer drukt weer laag. Dat gaan niet lukken met jou theorie.

Edit: of wil je je PIC aan/uit schakelen met die toets?

bedankt voor jullie reacties:

... of wil je je PIC aan/uit schakelen met die toets? ja dat is de bedoeling. doel: aantal bedieningstoetsen en componenten tot een minimum beperken. als het met de PIC lukt zou mooi zijn.

druktoets met parallel een mosje
de pic stuurt dat mosje.

de druktoets geeft spanning aande pic

het eerste wat die doet bij powerup is die mos sturen en zichzelf van stroom voorzien.

Op 15 november 2006 22:22:17 schreef pijl:
bedankt voor jullie reacties:

... of wil je je PIC aan/uit schakelen met die toets? ja dat is de bedoeling. doel: aantal bedieningstoetsen en componenten tot een minimum beperken. als het met de PIC lukt zou mooi zijn.

http://members.chello.nl/g.assies/test.JPG

Software maken dat zodra er spanning op de pic komt (je drukt de knop in), PORTB7 hoog maken, de tor neemt dan de spannings voorziening over. Zodra er op PORTB6 weer wordt gemerkt dat de toets wordt ingedrukt, PORTB7 weer laag maken...

kan iemand mij even op weg helpen met de software voor bovenstaand schema van t.assies? met de cursus picbasic in de hand kom ik er nog niet uit, helaas

C of ASM?
PM me anders even ;)

(daarna poste we het ook hoor :P)

[Bericht gewijzigd door LuckyBasterd op ]


void interrupt(void)
{
 PORTB.F7 = ~PORTB.F7;
 PORTB.F1 = 0; // EIGEN CODE (dingen aan of uit zette)
 INTCON = 0x90;
 while (1)
 {
  if (PORTB.F7 == 1) break; // ga verder met het programma als transistor geleid! 
 }
}

void main ()
{
INTCON = 0x90; //init interrupt
TRISB = 0x01; // port def
PORTB.F7 = 1; // transitor aansturen
while (1)
{
 PORTB.F1 = ~PORTB.F1; // EIGENCODE
 delay_ms(1);
}
}

Ik het even in C gedaan ASM code zal ik er ook bij zetten

;  ASM code generated by mikroVirtualMachine for PIC - V. 6.0.0.0
;  Date/Time: 17-11-2006 10:04:15
;  Info: http://www.mikroelektronika.co.yu


; ADDRESS	OPCODE	ASM
; ----------------------------------------------
$0000	$2836			GOTO	_main
$0004	$	_interrupt:
$0004	$00CF			MOVWF	STACK_15
$0005	$0E03			SWAPF	STATUS, 0
$0006	$0183			CLRF	STATUS
$0007	$008D			MOVWF	?saveSTATUS
$0008	$0804			MOVF	FSR, 0
$0009	$008C			MOVWF	?saveFSR
$000A	$080A			MOVF	PCLATH, 0
$000B	$008E			MOVWF	?savePCLATH
$000C	$018A			CLRF	PCLATH
$000D	$0841			MOVF	STACK_1, 0
$000E	$0090			MOVWF	STSAVED_1
$000F	$0840			MOVF	STACK_0, 0
$0010	$008F			MOVWF	STSAVED_0
$0011	$3000			MOVLW	0
$0012	$1B86			BTFSC	PORTB, 7
$0013	$3001			MOVLW	1
$0014	$00C1			MOVWF	STACK_1
$0015	$0941			COMF	STACK_1, W
$0016	$00C0			MOVWF	STACK_0
$0017	$3000			MOVLW	0
$0018	$1840			BTFSC	STACK_0, 0
$0019	$3080			MOVLW	128
$001A	$0606			XORWF	PORTB, 0
$001B	$3980			ANDLW	128
$001C	$0686			XORWF	PORTB, 1
$001D	$1086			BCF	PORTB, 1
$001E	$3090			MOVLW	144
$001F	$008B			MOVWF	INTCON
$0020	$	L_interrupt_0:
$0020	$3000			MOVLW	0
$0021	$1B86			BTFSC	PORTB, 7
$0022	$3001			MOVLW	1
$0023	$00C1			MOVWF	STACK_1
$0024	$0841			MOVF	STACK_1, 0
$0025	$3A01			XORLW	1
$0026	$1903			BTFSC	STATUS, Z
$0027	$2829			GOTO	L_interrupt_1
$0028	$	L_interrupt_2:
$0028	$2820			GOTO	L_interrupt_0
$0029	$	L_interrupt_1:
$0029	$	L_Interrupt_end:
$0029	$0810			MOVF	STSAVED_1, 0
$002A	$00C1			MOVWF	STACK_1
$002B	$080F			MOVF	STSAVED_0, 0
$002C	$00C0			MOVWF	STACK_0
$002D	$080E			MOVF	?savePCLATH, 0
$002E	$008A			MOVWF	PCLATH
$002F	$080C			MOVF	?saveFSR, 0
$0030	$0084			MOVWF	FSR
$0031	$0E0D			SWAPF	?saveSTATUS, 0
$0032	$0083			MOVWF	STATUS
$0033	$0ECF			SWAPF	STACK_15, 1
$0034	$0E4F			SWAPF	STACK_15, 0
$0035	$0009			RETFIE
$0036	$	_main:
$0036	$3090			MOVLW	144
$0037	$008B			MOVWF	INTCON
$0038	$3001			MOVLW	1
$0039	$1303			BCF	STATUS, RP1
$003A	$1683			BSF	STATUS, RP0
$003B	$0086			MOVWF	TRISB
$003C	$1283			BCF	STATUS, RP0
$003D	$1786			BSF	PORTB, 7
$003E	$	L_main_3:
$003E	$3000			MOVLW	0
$003F	$1886			BTFSC	PORTB, 1
$0040	$3001			MOVLW	1
$0041	$00C1			MOVWF	STACK_1
$0042	$0941			COMF	STACK_1, W
$0043	$00C0			MOVWF	STACK_0
$0044	$3000			MOVLW	0
$0045	$1840			BTFSC	STACK_0, 0
$0046	$3002			MOVLW	2
$0047	$0606			XORWF	PORTB, 0
$0048	$3902			ANDLW	2
$0049	$0686			XORWF	PORTB, 1
$004A	$3002			MOVLW	2
$004B	$00CB			MOVWF	STACK_11
$004C	$30FF			MOVLW	255
$004D	$00CA			MOVWF	STACK_10
$004E	$0BCB			DECFSZ	STACK_11, F
$004F	$2851			GOTO	$+2
$0050	$2854			GOTO	$+4
$0051	$0BCA			DECFSZ	STACK_10, F
$0052	$2851			GOTO	$-1
$0053	$284E			GOTO	$-5
$0054	$304A			MOVLW	74
$0055	$00CA			MOVWF	STACK_10
$0056	$0BCA			DECFSZ	STACK_10, F
$0057	$2856			GOTO	$-1
$0058	$283E			GOTO	L_main_3
$0059	$2859			GOTO	$

Het zal wel korter kunnen maar goed dat is even kijken
Aan de C code kan je aflezen dat ik de INTERRUPT heb gebruikt en dat hij hier op schakelde
en als rb7 hoog is dat hij verder mag met zijn programma