Ya esta claro!!lo ke me pasaba de la "suma" ke no incrementaba es debido(segun supongo yo) a ke el propio ccs reserva palabras para su propio uso,como el basic,pero el ccs se ve ke reserva las primeras y yo al xafar una de ellas(0x20) nunca tenia el valor ke keria.Si pongo "#byte suma = 0x40" si ke funciona.
El otro tema de setear los bits del puerto c poniendo:
LED_VERDE = false;
LED_AMARILLO = true;
LED_ROJO = false;
tambien me funciona,pero solo cuando lo pruebo en una placa board.Si lo simulo en proteus me va mal,se encienden solo el verde y el rojo,el amarillo no.¿Sabeis por ke me puede pasar esto?
Alomejor es algun tema de configuracion de proteus ya ke este sera 100% fiable,no?
................iba a poner los fixeros adjuntos pero no me ha dejado por falta de espacio.Pongo aki el programa completo para ke lo veais y haber si le podeis encontrar explicacion de porke en proteus no me va:
#include <16f870.h>
#use delay(clock=20000000)
#fuses HS,NOWDT,NOPROTECT
#byte PORTC = 0x07
#bit LED_VERDE = PORTC.4
#bit LED_AMARILLO = PORTC.5
#bit LED_ROJO = PORTC.6
MAIN() {
SET_TRIS_A (0b000001);
SET_TRIS_B (0b00000000);
SET_TRIS_C (0b00000000);
PORTA = 0;
PORTB = 0;
PORTC = 0;
INICIO:
// portc = 0b00010000;
LED_VERDE = true;
LED_AMARILLO = false;
LED_ROJO = false;
delay_ms(1000);
// rotate_left( &PORTC, 1); **si activo de esta forma las
//salidas,si ke me funciona bien...¿?
LED_VERDE = false;
LED_AMARILLO = true;
LED_ROJO = false;
delay_ms(1000);
// rotate_left( &PORTC, 1);
LED_VERDE = false;
LED_AMARILLO = false;
LED_ROJO = true;
delay_ms(1000);
GOTO INICIO;
}
Saludos!!