Hallo,
Als ik in onderstaand prog comparator RA0 en RA1 actief maak setup_comparator(A0_VR_A1_VR)kan ik poort RA2 niet meer hoog maken.
output_High(PIN_A2); RA2 wordt dan 4 us hoog
In MPLAP sim geeft watch portA wel de veranderingen
in ICD 2 blijft watch portA voor RA2 en RA3 0
Trisa = 00110011
Probleem is in 16F877A en in 16F874a het zelfde

void main()
{
setup_adc_ports(NO_ANALOGS);
setup_adc(ADC_OFF);
setup_psp(PSP_DISABLED);
setup_spi(FALSE);
setup_timer_0(RTCC_INTERNAL|RTCC_DIV_1);
setup_timer_1(T1_DISABLED);
setup_timer_2(T2_DISABLED,0,1);
setup_comparator(A0_VR_A1_VR);
// setup_comparator(NC_NC_NC_NC);
setup_vref(VREF_LOW|8);
loop:
output_Low(PIN_A2);
output_High(PIN_A3);
delay_us(50);
output_High(PIN_A2);
output_Low(PIN_A3);
delay_us(50);
goto loop;
}

Filename: C:\Program Files\PICC\Projects\comptest2.LST

ROM used: 112 words (1%)
Largest free fragment is 2048
RAM used: 6 (3%) at main() level
6 (3%) worst case
Stack: 0 locations

*
0000: MOVLW 00
0001: MOVWF 0A
0002: GOTO 004
0003: NOP
.................... #include "C:\Program Files\PICC\Projects\comptest2.h"
.................... #include <16F877A.h>
.................... //////// Standard Header file for the PIC16F877A device ////////////////
.................... #device PIC16F877A
.................... #list
....................
.................... #device adc=8
....................
.................... #FUSES NOWDT //No Watch Dog Timer
.................... #FUSES XT //Crystal osc <= 4mhz
.................... #FUSES PUT //Power Up Timer
.................... #FUSES NOPROTECT //Code not protected from reading
.................... #FUSES NODEBUG //No Debug mode for ICD
.................... #FUSES BROWNOUT //Reset when brownout detected
.................... #FUSES NOLVP //No low voltage prgming, B3(PIC16) or B5(PIC18) used for I/O
.................... #FUSES NOCPD //No EE protection
.................... #FUSES NOWRT //Program memory not write protected
....................
.................... #use delay(clock=4000000)
.................... #use rs232(baud=9600,parity=N,xmit=PIN_C6,rcv=PIN_C7,bits=9)
....................
....................
....................
....................
.................... void main()
.................... {
0004: CLRF 04
0005: MOVLW 1F
0006: ANDWF 03,F
0007: BSF 03.5
0008: BSF 1F.0
0009: BSF 1F.1
000A: BSF 1F.2
000B: BCF 1F.3
000C: MOVLW 07
000D: MOVWF 1C
000E: MOVF 1C,W
000F: BCF 03.5
0010: BCF 0D.6
0011: MOVLW 19
0012: BSF 03.5
0013: MOVWF 19
0014: MOVLW 66
0015: MOVWF 18
0016: MOVLW D0
0017: BCF 03.5
0018: MOVWF 18
....................
....................
.................... setup_adc_ports(NO_ANALOGS);
*
001B: BSF 03.5
001C: BSF 1F.0
001D: BSF 1F.1
001E: BSF 1F.2
001F: BCF 1F.3
.................... setup_adc(ADC_OFF);
0020: BCF 03.5
0021: BCF 1F.0
.................... setup_psp(PSP_DISABLED);
0022: BSF 03.5
0023: BCF 09.4
.................... setup_spi(FALSE);
*
0019: MOVLW FF
001A: MOVWF 20
*
0024: BCF 03.5
0025: BCF 14.5
0026: BCF 20.5
0027: MOVF 20,W
0028: BSF 03.5
0029: MOVWF 07
002A: BCF 03.5
002B: BSF 20.4
002C: MOVF 20,W
002D: BSF 03.5
002E: MOVWF 07
002F: BCF 03.5
0030: BCF 20.3
0031: MOVF 20,W
0032: BSF 03.5
0033: MOVWF 07
0034: MOVLW 00
0035: BCF 03.5
0036: MOVWF 14
0037: BSF 03.5
0038: MOVWF 14
.................... setup_timer_0(RTCC_INTERNAL|RTCC_DIV_1);
0039: MOVF 01,W
003A: ANDLW C7
003B: IORLW 08
003C: MOVWF 01
.................... setup_timer_1(T1_DISABLED);
003D: BCF 03.5
003E: CLRF 10
.................... setup_timer_2(T2_DISABLED,0,1);
003F: MOVLW 00
0040: MOVWF 78
0041: MOVWF 12
0042: MOVLW 00
0043: BSF 03.5
0044: MOVWF 12
.................... setup_comparator(A0_VR_A1_VR);
0045: MOVLW 06
0046: MOVWF 1C
0047: MOVF 05,W
0048: IORLW 03
0049: MOVWF 05
004A: MOVLW 03
004B: MOVWF 77
004C: DECFSZ 77,F
004D: GOTO 04C
004E: MOVF 1C,W
004F: BCF 03.5
0050: BCF 0D.6
.................... // setup_comparator(NC_NC_NC_NC);
....................
.................... setup_vref(VREF_LOW|8);
0051: MOVLW A8
0052: BSF 03.5
0053: MOVWF 1D
....................
.................... loop:
....................
.................... output_Low(PIN_A2);
0054: BCF 05.2
0055: BCF 03.5
0056: BCF 05.2
.................... output_High(PIN_A3);
0057: BSF 03.5
0058: BCF 05.3
0059: BCF 03.5
005A: BSF 05.3
.................... delay_us(50);
005B: MOVLW 10
005C: MOVWF 77
005D: DECFSZ 77,F
005E: GOTO 05D
005F: NOP
.................... output_High(PIN_A2);
0060: BSF 03.5
0061: BCF 05.2
0062: BCF 03.5
0063: BSF 05.2
.................... output_Low(PIN_A3);
0064: BSF 03.5
0065: BCF 05.3
0066: BCF 03.5
0067: BCF 05.3
.................... delay_us(50);
0068: MOVLW 10
0069: MOVWF 77
006A: DECFSZ 77,F
006B: GOTO 06A
006C: NOP
....................
....................
.................... goto loop;
006D: BSF 03.5
006E: GOTO 054
....................
.................... }
....................
....................
006F: SLEEP

Configuration Fuses:
Word 1: 3F71 XT NOWDT PUT NODEBUG NOPROTECT BROWNOUT NOLVP NOCPD NOWRT

Helaas geen antwoord.
Ik hoop dat het probleem duidelijk omschreven is.
Heeft iemand een tip waar terecht voor Microchipcontroller
vragen ?
Ik bedoel dus andere forums of info bronnen.

alvast bedankt,
Rob

Ik denk wel dat je hier antwoord zou kunnen krijen maar dan moet je wel een leesbaar topic neerzetten.
1 plaats listings tussen [code ] [/code ]
2 gebruik comments bij de code jij hebt hem geschreven en kan hem lezen ik kan hem wel lezen maar zonder comments weet ik jouw doel niet en moet ik puzzelen om je code te ontcijferen.

en laat aub de adressen weg en gebruik labels het is echt niet te begrijpen zo.

Op 18 november 2005 23:11:02 schreef rrob:
Heeft iemand een tip waar terecht voor Microchipcontroller
vragen ?

www.piclist.com

Op 18 november 2005 23:18:09 schreef The Headhunter:
Ik denk wel dat je hier antwoord zou kunnen krijen maar dan moet je wel een leesbaar topic neerzetten.
1 plaats listings tussen [code ] [/code ]
2 gebruik comments bij de code jij hebt hem geschreven en kan hem lezen ik kan hem wel lezen maar zonder comments weet ik jouw doel niet en moet ik puzzelen om je code te ontcijferen.

en laat aub de adressen weg en gebruik labels het is echt niet te begrijpen zo.

Bijna alles wat er staat is van de c- compiler
Assembler listing is gegenereerd door de compiler. Ik kan zelf niet progameren in assembler

Waar het omgaat is dat ik de comparator ingangen RA0 RA1 wil gebruiken met interne ref spanning Vref
En RA2 en RA3 als uitgang
Comparator RA0 en RA1 doen het prima maar de uitgang RA2 RA3 willen niet.

IN C is dat
setup_comparator(A0_VR_A1_VR); //setup comparator
setup_vref(VREF_LOW|8); //VREF intern 2.5V

loop: //Maak in loop pinA2 en A3 50us hoog en laag
output_Low(PIN_A2);
output_High(PIN_A3);
delay_us(50);
output_High(PIN_A2);
output_Low(PIN_A3);
delay_us(50);
goto loop;

www.piclist.com Wouter bedankt ik ga daar kijken.