Nakoľko nemám s 8051 žiadne skúsenosti napísal som jednoduchý kód kde len spínam výstupný pin
Kód: Vybrať všetko
#include <ch552.h>
int main()
{
// nastavenie frekvencie na 6Mhz
SAFE_MOD = 0x55; // INPUT IN SAFE_MOD
SAFE_MOD = 0xAA; // INPUT IN SAFE_MOD
CLOCK_CFG = 0x83; // 6Mhz
SAFE_MOD = 0x01; // OUTPUT IN SAFE_MOD
//----------------------------------------------------------
P1_MOD_OC = 0x00; // push-pull output
P1_DIR_PU = 0xFF; // output
P1_1 = 1;
while(1)
{
P1_1 = !P1_1;
}
}
V podstate napísaný program vykonáva to čo ma spína výstupný pin len s frekvenciou 500khz
Tu je náhľad do knižnice ch552.h
Kód: Vybrať všetko
/*-------------------------------------------------------------------------
ch552.h: Register Declarations for the CH552 Processor
-------------------------------------------------------------------------*/
#ifndef __CH552_H__
#define __CH552_H__
/* BYTE Register */
__sfr __at (0xB9) CLOCK_CFG ;
__sfr __at (0xA1) SAFE_MOD ;
__sfr __at (0x92) P1_MOD_OC ;
__sfr __at (0x93) P1_DIR_PU ;
__sfr __at (0x90) P1 ;
/* BIT Register */
__sbit __at (0x91) P1_1 ;
#endif
Kompilátor SDCC
Nerozumiem prečo to kmitá len 500khz
Za odpovede vopred ďakujem .